Cocos2D 學習筆記 (5) - 聲音

Cocos2d Sound

關於音樂與音效,iOS 提供兩個加入聲音的框架:
  • AVAudioPlayer:快速容易使用,但功能有限。
  • OpenAL:屬於低階 API,功能較多。
Cocos2D 使用 CocosDenshion 聲音引擎,整合了以上兩種音框架。同時提供了更簡單的 SimpleAudioEngine。

播放及停止

播放音效
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"];
本文網址:http://blog.tonycube.com/2013/11/cocos2d-5.html
Tony Blog 撰寫,轉載時請註明出處及文章連結,謝謝 😀

我要留言

留言小提醒:
1.回覆時間通常在晚上,如果太忙可能要等幾天。
2.請先瀏覽一下其他人的留言,也許有人問過同樣的問題。
3.程式碼請先將它編碼後再貼上。(線上編碼:http://bit.ly/1DL6yog)
4.文字請加上標點符號及斷行,難以閱讀者恕難回覆。
5.感謝您的留言,您的問題也可能幫助到其他有相同問題的人。