从 AudioUnit 格式转换为 ExtAudioFileWrite
Posted
技术标签:
【中文标题】从 AudioUnit 格式转换为 ExtAudioFileWrite【英文标题】:converting from AudioUnit format for ExtAudioFileWrite 【发布时间】:2013-07-10 21:12:13 【问题描述】:我有一个完全由 Apple AudioUnits 组成的 AUGraph - DLSSynth、Delay、Stereo Mixer。我正在尝试将其输出捕获到 ExtAudioFile 中。我的问题是我认为我需要将 AudioUnit 格式转换为 ExtAudioFile 可以使用的文件格式。如果我从 AUGraph 中获取 ASBD,我会得到
mSampleRate Float64 44100
mFormatID UInt32 1819304813
mFormatFlags UInt32 41
mBytesPerPacket UInt32 4
mFramesPerPacket UInt32 1
mBytesPerFrame UInt32 4
mChannelsPerFrame UInt32 2
mBitsPerChannel UInt32 32
mReserved UInt32 0
但是如果没有 fmt,我不能用那个 ASBD 创建一个 ExtAudioFile 吗?错误。有人可以指出将此流记录到文件的正确方向吗?
【问题讨论】:
我几乎没有使用那么多 AU,但我通常不需要为音频文件指定 ASBD。当您调用 ExtAudioFileWriteAsync 而不在文件上设置 ASBD 时会发生什么?你得到什么样的错误?另外,尝试写入哪些数据和文件格式? 【参考方案1】:您想将该 ASBD 用作您的 ExtAudioFile
的客户端格式 (kExtAudioFileProperty_ClientDataFormat
),在文件创建后通过属性设置。这是您在ExtAudioFileWrite
中传递的数据的格式。输出文件的格式在ExtAudioFileOpen
中指定。
【讨论】:
谢谢!我知道它应该是相当简单的。以上是关于从 AudioUnit 格式转换为 ExtAudioFileWrite的主要内容,如果未能解决你的问题,请参考以下文章
OS X AudioUnit:在生成器上设置杂项属性时出现 kAudio_ParamError