大佬教程收集整理的这篇文章主要介绍了ios – 采样率变化后的失真声音,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
>停止输入AudioUnit和由混音器和输出AudioUnit组成的AUGraph
>将两者都放在一边.
>检查节点计数,跳过它们并使用AUGraphDisconnectNodeInput断开混音器与输出的连接
>现在在输入单元的输出范围上设置新的采样率
>以及混合器单元的输入和输出范围
>将混音器节点重新连接到输出单元
>更新图表
> init输入和图形
>开始输入和图表
渲染和输出回调再次开始,但现在音频失真.我相信它是输入渲染回调,负责信号,但我不确定.
我忘记了什么?
据我所知,采样率不会影响缓冲区大小.
如果我用其他采样率开始我的应用程序一切正常,那就是导致信号失真的变化.
我查看之前和之后的流格式(kAudioUnitProperty_StreamFormat).一切都保持不变,除了采样率当然会改变为新值.
正如我所说,我认为这是需要更改的输入渲染回调.我是否必须通知回调需要更多样本?我用44k和48k检查了回调和缓冲区大小,没有什么不同.
我写了一个小测试应用程序,所以如果你想让我提供代码,我可以告诉你.
编辑:我录制了失真的音频(正弦)并在Audacity中查看了它.
我发现每495个样本后,音频会再次下降17个样本.
我想你会看到它的发展方向:495个样本17个样本= 512个样本.这是我的设备的缓冲区大小.
但我仍然不知道我能用这个发现做些什么.
我检查了输入和输出渲染过程以及它们对RingBuffer的访问(我使用固定版本的CARingBuffer)
存储和获取512帧,所以这里没有遗漏…
以上是大佬教程为你收集整理的ios – 采样率变化后的失真声音全部内容,希望文章能够帮你解决ios – 采样率变化后的失真声音所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。