Iphone 如何在音频队列中设置比特率

Iphone 如何在音频队列中设置比特率,iphone,core-audio,Iphone,Core Audio,我使用speak here代码进行音频录制,音频格式为kAudioFormatMPEG4AAC。 如何将比特率更改为96K、128K或320K 问候,, John我不确定您是否可以通过设置参数直接使用AudioQueue执行此操作。不过,我认为以下方法会奏效: 将音频队列设置为录制到线性PCM 使用与AudioQueue匹配的客户端数据格式和AAC的文件数据格式设置ExtAudioFile 通过获取与ExtAudioFile关联的音频转换器(kExtAudioFileProperty_Audi

我使用speak here代码进行音频录制,音频格式为kAudioFormatMPEG4AAC。 如何将比特率更改为96K、128K或320K

问候,,
John

我不确定您是否可以通过设置参数直接使用AudioQueue执行此操作。不过,我认为以下方法会奏效:

  • 将音频队列设置为录制到线性PCM
  • 使用与AudioQueue匹配的客户端数据格式和AAC的文件数据格式设置ExtAudioFile
  • 通过获取与ExtAudioFile关联的音频转换器(kExtAudioFileProperty_AudioConverter)并设置转换器的比特率(KaudioConverterenceCodeBitRate),设置所需的AAC比特率

我没有在iOS上尝试过,但是如果AAC编码器使用的是硬件编解码器,我怀疑您是否能够设置比特率。AudioFormat.h提供了一些方法来确定哪些编解码器是硬件还是软件,以及请求一种实现还是另一种实现的方法。

事实是,AudioQueue使用与AudioConverter相同的后端,尽管AudioQueueProperty enom中没有比特率键,但您仍然可以从converter借用它们。按如下方式获取比特率:

AudioQueueGetProperty(mQueue, kAudioConverterEncodeBitRate, &bitRate, &propertySize);
AudioQueueSetProperty(mQueue, kAudioConverterEncodeBitRate, &bitRate, propertySize);
设置如下:

AudioQueueGetProperty(mQueue, kAudioConverterEncodeBitRate, &bitRate, &propertySize);
AudioQueueSetProperty(mQueue, kAudioConverterEncodeBitRate, &bitRate, propertySize);

重复:有更多的细节。请你对我的问题发表意见好吗?我看你对这个核心音频有经验。