我目前使用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 –