问题标签 [novocaine]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - AudioConverterRef 采样率转换 (iOS)
我编写了一个 voip 应用程序,它使用“novocaine”库来录制和播放声音。我将采样率设置为 8kHz。此采样率在音频单元的 AudioStreamBasicDescription 中的 novocaine 中设置,并作为音频会话属性 kAudioSessionProperty_PreferredHardwareSampleRate 设置。我了解设置首选硬件采样率并不能保证实际硬件采样率会改变,但它适用于除 iPhone6s 和 iPhone6s+ 之外的所有设备(当路由更改为扬声器时)。使用 iPhone6s(+) 和扬声器路由,我从麦克风接收到 48kHz 的声音。所以我需要以某种方式将这个 48 kHz 的声音转换为 8 kHz。在文档中,我发现在这种情况下可以使用 AudioConverterRef,但我在使用它时遇到了麻烦。
我使用 AudioConverterFillComplexBuffer 进行采样率转换,但它总是返回 -50 OSStatus(传递给函数的一个或多个参数无效)。这就是我使用音频转换器的方式:
inputProcPtr 回调永远不会被调用。我尝试设置不同的帧数,但仍然收到 OSStatus -50。
1) 使用 AudioConverterRef 是进行采样率转换的正确方法还是可以以不同的方式完成?
2) 我的转换实现有什么问题?
谢谢大家