關於音樂與音效,iOS 提供兩個加入聲音的框架:
- AVAudioPlayer:快速容易使用,但功能有限。
- OpenAL:屬於低階 API,功能較多。
播放及停止
播放音效SimpleAudioEngine *soundEngine = [SimpleAudioEngine sharedEngine];
[soundEngine playEffect:@"effect.mp3"];
如果要停止音效,必須先取得它的 id,如下:
ALuint *soundId = [soundEngine playEffect:@"effect.mp3"];
[soundEngine stopEffect:soundId];
當然,如果上面這兩行同時執行的話,是聽不到任何音效的,因為在它播放的同時就被停止了。要播放背景音樂的話,如下:
SimpleAudioEngine *soundEngine = [SimpleAudioEngine sharedEngine];
[soundEngine playBackgroundMusic:@"sound.mp3"];
停止則是:
[soundEngine stopBackgroundMusic];
預先載入
第一次播放聲音時,會因為載入的關係而不會立即播放,為了避免延遲,會在一開始就預先把聲音載入,音效及背景音樂都有其自己的預先載入方法,如下://預先載入音效
[[SimpleAudioEngine sharedEngine] preloadEffect:@"effect.mp3"];
//預先載入背景音樂
[[SimpleAudioEngine sharedEngine] preloadBackgroundMusic:"sound.mp3"];
我要留言
留言小提醒:
1.回覆時間通常在晚上,如果太忙可能要等幾天。
2.請先瀏覽一下其他人的留言,也許有人問過同樣的問題。
3.程式碼請先將它編碼後再貼上。(線上編碼:http://bit.ly/1DL6yog)
4.文字請加上標點符號及斷行,難以閱讀者恕難回覆。
5.感謝您的留言,您的問題也可能幫助到其他有相同問題的人。