何时设置 kAudioUnitProperty_StreamFormat?
何时设置kAudioUnitProperty_StreamFormat(以及kAudioUnitProperty_SampleRate)?对于我的 AUGraph 中的每个 AU?或者只为 AU Mixer 设置就足够了?
安德烈
When to set kAudioUnitProperty_StreamFormat (and kAudioUnitProperty_SampleRate too)? For each AU in my AUGraph ? Or is it enough to set it jus for the AU Mixer ?
André
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以将其设置在每个音频单元的输入和输出上。
iPhone 只允许输入有符号整数。所以不要为浮动而烦恼,它是行不通的。
设置采样率
您使用CAStreamBasicDescription myDescription
; myDescription.mSampleRate = 44100.0f; //并对其他选项(例如mBitsPerChannel等)执行此操作。
在混音器等音频单元的输出上,它以8.24定点格式显示。
当您尝试创建回调并使用 audiounitrender 函数时请注意这一点,格式必须匹配并且您无法更改输出格式。 (但您可能仍然需要设置它)
使用 printf("Mixer 文件格式:"); myDescription.Print();获取格式描述。这取决于您将其放在初始化过程中的位置。
you set it on the inputs and outputs of each audiounit.
iphone only allows input signed ints. so don't bother with floats it just won't work.
you set the sample rates using
CAStreamBasicDesciption myDescription;
myDescription.mSampleRate = 44100.0f; // and do this for the other options such as mBitsPerChannel etc.
On the output of audiounits such as the mixer, it comes out as 8.24 fixed point format.
be aware of this when you're trying to create callbacks and using the audiounitrender function, the formats have to match and you can't change the output formats. (but you may still need to set it)
use printf("Mixer file format: "); myDescription.Print(); to get the format description. It will depend on where you put it in your initialization process.
简而言之,是的 - 有关您实际需要在每个单元上设置的更多详细信息,请参阅 iOS 音频单元托管指南
In short, yes - for more detail on what you actually need to set on each unit, see Audio Unit Hosting Guide for iOS