从Core Audio框架开始

ind*_*gie 4 c core-audio

对于我打算很快启动的项目,我将需要播放压缩和未压缩的音频文件.为此,我打算使用Core Audio框架.但是,我没有音频编程的经验,我真的不知道从哪里开始.是否有任何初学者级资源或示例项目可以演示如何使用Core Audio构建简单的音频播放器?

Eri*_*tto 6

刚刚出现了关于Core Audio的书预览.我已经开始阅读它,作为初学者,我发现它很有用.

它有一个教学风格的教学方法,并在其解释中非常清楚.我强烈推荐它.


abb*_*ood 5

虽然这个问题已经得到了回答..我想补充一些提示,因为我几个月来一直在努力解决同样的问题:

  • 这是我基于学习核心有声书上的示例代码创建的一个非常简单的示例代码.

  • 马特·加拉格尔音频流教程是一个明确的必须的.除了提供流式音频直播..其还提供了多线程的一个简单的例子..一个很好的例子这使我下一个非常重要的一点

  • 在Apple的并发指南中..他们建议不要使用多线程..并给你一些建议,如GCD和NSOperations等等.在核心音频方面不是一个好的想法..至少是实时音频.. b/c实时音频对任何类型的阻塞或昂贵的操作都非常敏感.超出你的想象(即使有时甚至简单的NSLog语句都可以使音频分解甚至根本不播放!!)是关于这一点的不可或缺的读物音频的一部分.

  • 音频编程是一种不同于我们大多数人习惯的编程.因此,花点时间去理解概念......其中很多都需要时间来吸收...例如音频文件格式和音频流格式之间的区别..压缩音频和PCM(非压缩)音频之间的区别..例子比比皆是.

  • 一个关键点让我理解:访问iPad库中的音频文件..读取它们的唯一方法是通过AVAssetReader API方法.. 而不是通过其他API,如AudioFileReadPackets等..(尽管如果你存储一个文件在你的项目中手动..然后你可以).. AVAssetReader比其他API更不方便用户..但一旦核心音频的概念沉入...你将找不到很多区别..我的示例使用AVAssetReader

  • 看看我和Justin 在这里讨论过的问题......在其中你会看到很多我陷入困境的陷阱,你会明白如何避免它们.请记住,特别是使用Core Audio ..它不是要知道如何解决问题......而是要知道首先要解决什么问题.

  • 如果您或任何其他人对核心音频有任何疑问,请随时写一个关于堆栈溢出的问题,并通过评论我自己的一个问题来指出我只是为了引起我的注意..我' 社区在这里得到了很多帮助,我真的想提供帮助作为回报