iPhone sdk中的OGG Vorbis

时间:2011-01-20 09:52:14

标签: iphone audio ogg

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

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

2 个答案:

答案 0 :(得分:9)

迟到总比没有好;)
我在这里找到了答案Use cocos2d for playing ogg file in my project?

  

PASoundMgr是一个支持ogg文件的不同声音引擎   回放。但是,自iOS 2.x以来它还没有更新   从那时起出现的许多问题都没有   处理

     

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

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

以下是我的demoProject,其中显示了如何在ios上播放ogg。

小心iOS 5. *模拟器,他们有一些problems声音库。我的演示适用于4.3模拟器和设备。


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

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

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

  3. 我将 tremor 组中的所有文件复制到我的项目中。创建了“vorbis” Cocoa Touch静态库,没有ARC。并将所有源文件和标题添加到 Build Phases 标签中的“vorbis”目标。

  4. 在OggPlayDemo的 Build Phases 中添加了库(libvorbis,OpenAl,AudioToolbox)到 Link Binary with Libraries 框。

  5. PA 类添加到项目中。并检查OggPlayDemo作为目标。为了避免ARC出现问题,我为这3个 PA 文件禁用了ARC编译。 (见disable ARC for single file

  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];   
    }
    

答案 1 :(得分:0)

Cricket Audio将播放ogg文件等,并适用于iOS / Android / WP8。