0

我确实以以下方式创建音频队列

AudioQueueNewOutput(&audioFormat, audioQueueOutputCallback, (__bridge void*)self, NULL, NULL, 0, &mAudioQueue)

格式如下

audioFormat.mFormatID = kAudioFormatAC3;                
audioFormat.mBytesPerPacket = 0;
audioFormat.mFramesPerPacket = mavfContext->streams[audio_index]->codec->frame_size;
audioFormat.mBytesPerFrame = 0;
audioFormat.mChannelsPerFrame = mavfContext->streams[audio_index]->codec->channels;
audioFormat.mBitsPerChannel = 0;

创建失败并出现 kAudioFormatUnsupportedDataFormatError。我检查过它mavfContext->streams[audio_index]->codec->frame_size是 0。那么 ac3 媒体的 mFramesPerPacket 是否有任何标准值?

4

1 回答 1

1

AC3 帧大小应为 256 * 个通道,因此我希望在这里:

mFramesPerPacket = 256 * mChannelsPerFrame.

于 2012-08-15T15:06:34.750 回答