1

对于一个项目,我需要在一个非常特别的 iPhone 应用程序中处理音频,希望有人能指出我正确的方向。

假设您有一组固定的最多 30 个相同长度的音频文件(2-3 秒,未压缩)。当一个 que 从一个音频文件播放时,它应该能够更新参数,使播放从另一个音频文件从与前一个音频文件结束播放相同的时间戳继续播放。如果不同的音频文件是经过大量过滤的音频的不同版本,则应该可以在它们之间“滑动”以获得您直接应用过滤器的印象。目前无法在 iPhone 上实时实现过滤,因此是预渲染文件。

如果 AB 和 C 是不同的音频文件,我希望能够:

不间断地播放 A:

开始 AAAAAAAAAAAAA 停止

或开始播放 A 并在 B 和 C 中继续播放,在播放时启动

开始 AAABBBBBBBBCC 停止

理想情况下应该可以同时玩两个以上的问题。延迟并不那么重要,但文件之间的跳过最好不会产生点击或延迟。

我已经研究过使用音频队列服务(看起来像地狱一样)并嗅探了 OpenAl。谁能给我一个粗略的概述和一个我可以在接下来的几天里埋头的大方向?

4

2 回答 2

1

尝试使用 iOS 音频单元 API,尤其是连接到 RemoteIO 的混音器单元用于音频输出。

于 2012-03-05T21:26:08.473 回答
1

我设法通过使用 FMOD Designer 做到了这一点。FMOD ( http://www.fmod.org/ ) 是一个完善的游戏开发设计框架,支持 iOS 开发。我在 FMOD Designer 中制作了一个多轨事件,每个声音剪辑都有不同的层。在水平栏中添加一个参数,可让您控制实时播放的声音片段。诀窍是让每个声音片段在整个小节上继续播放,并通过使用音量效果 (0-100%) 来控制听到的声音,如附图中所示。这样,您可以确保在文件之间跳过遵循相同的时间码。我已经成功地尝试了多达 30 层,但经历了一些双重播放。如果我将数字减少到十五,这似乎消失了。

如果您对此感到满意,应该可以使用 iOS 音频单元 API,但对于我们这些喜欢最简单的解决方案 FMOD 的人来说非常好 :) 感谢Ellen S的解决方案提示!

FMOD Designer 中的多轨事件截图:https: //plus.google.com/photos/106278910734599034045/albums/5723469198734595793? authkey=CNSIkbyYw8PM2wE

于 2012-03-24T14:26:26.873 回答