我目前使用OpenAL玩遊戲音樂。它工作正常,但除了原始WAV文件之外,它不能工作。這意味着我最終會有一個〜9mb的配樂。AudioToolbox/OpenAL ExtAudioFile播放壓縮音頻
我是OpenAL的新手,我直接使用Apple的示例代碼(https://developer.apple.com/library/ios/#samplecode/MusicCube/Listings/Classes_MyOpenALSupport_h.html%23//apple_ref/doc/uid/DTS40008978-Classes_MyOpenALSupport_h-DontLinkElementID_9)來獲取緩衝區數據。
問題:有沒有什麼辦法可以修改這個函數,以便它讀取壓縮音頻並對其進行解碼?
我並不擔心音頻文件格式,只要它可以播放和壓縮(如mp3,aac,caf)即可。我想這樣做(顯然)的唯一原因是減小文件大小。
編輯:看來,這個問題並沒有像我用來獲取緩衝區的方法那麼多。 https://developer.apple.com/library/ios/#samplecode/MusicCube/Listings/Classes_MyOpenALSupport_h.html%23//apple_ref/doc/uid/DTS40008978-Classes_MyOpenALSupport_h-DontLinkElementID_9的功能使用AudioFileOpenURL
和AudioFileReadBytes
。有什麼辦法可以讓框架爲我解碼音頻ExtAudioFileOpenURL
和ExtAudioFileRead
?
我試過這裏的代碼:https://devforums.apple.com/message/10678#10678,但我不知道該怎麼做。我用來獲取緩衝區的函數是https://developer.apple.com/library/ios/#samplecode/MusicCube/Listings/Classes_MyOpenALSupport_h.html%23//apple_ref/doc/uid/DTS40008978-Classes_MyOpenALSupport_h-DontLinkElementID_9,我沒有真正修改它,所以這就是我需要建立的。
我已經開始賞金了,因爲我真的需要這個,希望有人能指出我正確的方向。
你真的不得不用純粹的OpenAL來播放你的聲音嗎?你爲什麼不使用像CocosDenshion這樣的盒子,這將爲你節省大量的後顧之憂。 http://www.cocos2d-iphone.org/wiki/doku.php/cocosdenshion:faq –