iphone - 修改Auritouch示例代码以从音频文件读取数据

标签 iphone audio core-audio

我想修改苹果的 auriotouch 示例代码以从音频文件生成波形,而不是从麦克风输入渲染波形。我尝试这样做,但我无法理解要在哪里进行更改以及进行哪些更改。谁能指导我如何实现它。

谢谢

最佳答案

查看渲染回调中名为 AudioUnitRender 的函数

只要扬声器需要数据,就会发生渲染回调。

IIRC A.T.使用此功能可以简单地从麦克风中获取需要的许多样本

当然,第一次会失败,因为没有什么等待

无论如何,只需注释掉这个函数,然后用文件中的样本填充缓冲区(我认为您可能希望提前加载到内存中,可能不希望 fileIO 阻塞高优先级线程)

这意味着您可能需要创建某种 AudioFile 类,并在设置渲染回调时传递对该类实例的引用。这样你就可以从这个渲染回调中访问数据(这是一个普通的C函数,即不是类的成员,所以它没有其他方法来访问类数据——除非你想做一些可怕的事情)与文件级变量)。

确保您创建的 AudioFile* 音频文件是非原子的(如果它是一个属性),您不希望渲染回调一直等待,因为其他线程位于该对象内部,因此对其具有锁定。

关于iphone - 修改Auritouch示例代码以从音频文件读取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6856573/

相关文章:

ios - 在 iPhone 7 的顶部和底部扬声器之间平移声音

iOS 通过 AVAssetWriter 反转音频

iphone - 使用 Javascript 禁用 iPhone 上的 'save image' 菜单

iphone - 如何在 Storyboard 中创建 UIScrollView?

iphone - 选择器添加参数

iphone - 地理位置知道的帖子

java - Android:如果有任何声音发生,听众记录声音

iOS - 打电话时在后台播放声音

audio - 是否可以使用 ffmpeg 从 ASIO 设备捕获音频?

iphone - 音频队列服务: changing output device