我想知道是否可以使用iPhone SDK播放Ogg Vorbis音频文件,或者是否存在允许此操作的库或框架.
我读过一些关于OpenAL的内容,但我没有找到任何教程......任何人都可以帮助我吗?
迟到总比没有好;)
我在这里找到答案使用cocos2d在我的项目中播放ogg文件?.
PASoundMgr是一个支持ogg文件播放的不同声音引擎.但是,它自iOS 2.x以来一直没有更新,并且自那时起出现了许多问题,它们无法处理.
为什么你需要播放ogg文件?如果你将它们转换为aac,你将能够使用硬件解码来播放它们,从cpu使用的角度来看,它更有效.
他们提到了PASoundMgr.它对我有用.我只是从cocos2d框架中复制了SoundEngineTest所基于的所有文件 - >库.并摆脱了不必要的代码.
小心使用iOS 5.*模拟器,他们在声音库方面存在一些问题.我的演示工作在4.3模拟器和设备上.
以下是我创建演示的步骤:
首先你需要cocos2d-iphone框架.我已经拥有它,但你可以在这里找到它cocos-2d_download.
您可以注意到SoundEngineTest依赖于libvorbis.a.它是一个由external/Tremor
组中的文件组成的库.它还取决于OpenAl,AudioToolbox框架.
我将tremor组中的所有文件复制到我的项目中.Creuteed"vorbis" 可可触摸静态库,没有ARC.并将所有源文件和标头添加到Build Phases选项卡中的"vorbis"目标.
在OggPlayDemo 的构建阶段添加库(libvorbis,OpenAl,AudioToolbox)到Link Binary with Libraries框.
为项目添加了PA类.并检查OggPlayDemo作为目标.为了避免ARC出现问题,我禁用了这3个PA文件的ARC编译.(请参阅为单个文件禁用ARC)
删除了所有cocos2d引用.有一些代码与根据方向纠正听众的位置有关...我评论了它.我不需要这个功能来播放音频.
复制的音频文件.
最后将此代码添加到ViewController:
- (void)viewDidLoad
{
[super viewDidLoad];
//init
[PASoundMgr sharedSoundManager];
[[[PASoundMgr sharedSoundManager] listener] setPosition:CGPointMake(0, 0)];
self.audioSource = [[PASoundMgr sharedSoundManager] addSound:@"trance-loop" withExtension:@"ogg" position:CGPointMake(0, 0) looped:YES];
// lower music track volume and play it
[self.audioSource setGain:0.5f];
}
- (IBAction)play:(id)sender {
[self.audioSource playAtListenerPosition];
}
Run Code Online (Sandbox Code Playgroud) 归档时间: |
|
查看次数: |
6147 次 |
最近记录: |