ios - iOS 上的 AUGraph 设置

标签 ios core-audio

我正在为 iOS 应用程序设计 AUGraph,希望能在以下方面提供帮助。

如果我想一次播放多个音频文件,是否每个文件都需要一个音频单元?

来自 Core-Audio 文档

Linear PCM and IMA/ADPCM (IMA4) audio You can play multiple linear PCM or IMA4 format sounds simultaneously in iOS without incurring CPU resource problems.

AAC, MP3, and Apple Lossless (ALAC) audio Playback for AAC, MP3, and Apple Lossless (ALAC) sounds uses efficient hardware-based decoding on iPhone and iPod touch. You can play only one such sound at a time.

因此无法同时播放多个 AAC 或 MP3 文件。一次播放多个声音的最佳 LPCM 格式是什么?

这是否也适用于音频单元,如 AudioQueue 文档中所述。

AUGraph 中的音频单元可以处于非事件状态吗?如果 AUGraph 看起来像这样

喇叭/输出<录音机单元<调音台单元<音频文件播放单元数

如果记录器未处于事件状态,会发生什么情况,它是否仍会拉取,但不会将缓冲区写入文件?

最佳答案

没有;您需要使用混音器音频单元。检查这个: http://developer.apple.com/library/ios/DOCUMENTATION/MusicAudio/Conceptual/AudioUnitHostingGuide_iOS/ConstructingAudioUnitApps/ConstructingAudioUnitApps.html#//apple_ref/doc/uid/TP40009492-CH16-SW1

主要是阅读上面的文档,将示例代码包装在一个类中并创建一对实用结构,我从头开始编写这个“简单声音引擎”:

<罢工>ttp://nicolasmiari.com/blog/a-simple-sound-engine-for-ios-using-the-audio-unit-framework/ (链接到我的博客中包含源代码的文章)。 抱歉,已将博客移至 Jekyll/Github,这篇文章没有成功。

...我打算在github上开始一个repo,但是太麻烦了。我是一个视觉专家,仍然非常讨厌 git。 好吧,那是很久以前的事了......现在我从命令行使用 git :-)

您可以按原样使用它,也可以提取与音频单元相关的代码并根据您的项目进行调整。 我相信 Cocos Denshion 'Simple Audio Engine' 做的事情几乎是一样的,但还没有检查源代码。

已知问题 如果您为 C++ 异常设置了异常断点,则在调试时,代码将在 AUGraphInitialize() 上停止 2 或 3 次。这是一个“非崩溃”异常,因此您可以单击继续,代码运行正常。

要将您的 wav 文件转换为未压缩的 .caf 格式,请在终端上使用此命令:

%afconvert -f caff -d LEI16 mysoundFile.wav mySoundFile.caf

编辑: 所以我毕竟创建了一个 GitHub 存储库: https://github.com/nicolas-miari/Sound-Engine

关于ios - iOS 上的 AUGraph 设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11409810/

相关文章:

swift - Swift 中的音频单元渲染 block ?

iphone - 谁能帮我通过 Audio Unit 录制 iPhone 输出的声音

iphone - 如何通过扬声器而不是弱得多的耳机播放音频?

ios - iPhone 上的默认语言环境(en_NZ 到 en_AU)

ios - 应用检查更新

c++ - Objective-C,CoreAudio : Possible reasons for which played sound has additional noise, 嘶嘶声和爆裂声?

ios - iOS上是否已弃用AUGraph?如果是这样,什么时候?

javascript - 使用 React native 将图像固定在 ScrollView 中

iphone - 在 IOS 中以编程方式创建 View (它是如何工作的)?

ios - 在 iOS 中反向播放视频