通过HDMI播放iOS音频 - 如何处理48khz采样率?

时间:2011-11-07 15:51:25

标签: ios core-audio

我很高兴合成音频(44.1khz)并通过RemoteIO音频单元发送出去。我注意到我的应用程序的音频在通过HDMI输出到特定型号的电视时“乱码”。在我看来,这个问题与这台电视正在寻找48khz的音频数据这一事实有关。

以下是一些问题:

  • RemoteIO是否采用其输出的设备的采样率?如果我通过HDMI将音频发送到要求48kz的设备,我的RemoteIO回调缓冲区是否会变为48khz?

  • 是否有一些整洁的方法可以强制RemoteIO仍然以44.1khz的方式思考,并且在将数据传输到设备之前,是否足够聪明以自行执行任何必要的采样率转换?

  • 如果RemoteIO确实只是按照它所连接的设备,那么我可能需要在我的综合引擎和远程IO之间进行一些采样率转换。 AudioConverterConvertComplexBuffer是最好的方法吗?

2 个答案:

答案 0 :(得分:3)

解决了我的问题。我错误地认为渲染回调所请求的帧数是2的幂。更改了我的代码以适应任意数量的帧,现在看起来一切正常。

答案 1 :(得分:1)

如果您想要采样率转换,请尝试使用音频队列API,或使用某些DSP代码在您自己的应用中进行转换。

是否可以配置RemoteIO缓冲区大小或采样率可能取决于iOS设备型号,操作系统版本,音频路由,后台模式等,因此应用程序在使用RemoteIO时必须适应不同的缓冲区大小和采样率。