【问题标题】:OGG Vorbis in iPhone sdkiPhone sdk 中的 OGG Vorbis
【发布时间】:2011-06-12 08:24:20
【问题描述】:

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

我读过一些关于 OpenAL 的文章,但我没有找到任何教程...... 谁能帮帮我??

【问题讨论】:

标签: iphone audio ogg


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    迟到总比不到好;)
    我在这里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];   
      }
      

    【讨论】:

    • 顺便说一句,我从来没有在我的任何项目中使用过这个,所以我不知道这是否是一个好方法。但它有效;)
    • 为我工作,但我不得不在 PASoundSource.m 中将 int dst 更改为 long dst
    猜你喜欢
    • 2014-12-28
    • 2011-05-19
    • 2013-12-14
    • 2011-02-08
    • 1970-01-01
    • 2011-07-08
    • 2013-03-01
    • 2015-07-13
    • 1970-01-01
    相关资源
    最近更新 更多