iPhone sdk中的OGG Vorbis

Dig*_*DEV 5 iphone audio ogg

我想知道是否可以使用iPhone SDK播放Ogg Vorbis音频文件,或者是否存在允许此操作的库或框架.

我读过一些关于OpenAL的内容,但我没有找到任何教程......任何人都可以帮助我吗?

Dan*_*eel 9

迟到总比没有好;)
我在这里找到答案使用cocos2d在我的项目中播放ogg文件?.

PASoundMgr是一个支持ogg文件播放的不同声音引擎.但是,它自iOS 2.x以来一直没有更新,并且自那时起出现了许多问题,它们无法处理.

为什么你需要播放ogg文件?如果你将它们转换为aac,你将能够使用硬件解码来播放它们,从cpu使用的角度来看,它更有效.

他们提到了PASoundMgr.它对我有用.我只是从cocos2d框架中复制了SoundEngineTest所基于的所有文件 - >库.并摆脱了不必要的代码.

这是我的demoProject,它展示了如何在ios上玩ogg.

小心使用iOS 5.*模拟器,他们在声音库方面存在一些问题.我的演示工作在4.3模拟器和设备上.


以下是我创建演示的步骤:

  1. 首先你需要cocos2d-iphone框架.我已经拥有它,但你可以在这里找到它cocos-2d_download.

  2. 您可以注意到SoundEngineTest依赖于libvorbis.a.它是一个由external/Tremor组中的文件组成的库.它还取决于OpenAl,AudioToolbox框架.

  3. 我将tremor组中的所有文件复制到我的项目中.Creuteed"vorbis" 可可触摸静态库,没有ARC.并将所有源文件和标头添加到Build Phases选项卡中的"vorbis"目标.

  4. 在OggPlayDemo 的构建阶段添加库(libvorbis,OpenAl,AudioToolbox)到Link Binary with Libraries框.

  5. 为项目添加了PA类.并检查OggPlayDemo作为目标.为了避免ARC出现问题,我禁用了这3个PA文件的ARC编译.(请参阅为单个文件禁用ARC)

  6. 删除了所有cocos2d引用.有一些代码与根据方向纠正听众的位置有关...我评论了它.我不需要这个功能来播放音频.

  7. 复制的音频文件.

  8. 最后将此代码添加到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)