ExtAudioFileGetProperty返回零帧大小的AudioStreamDescription

时间:2014-03-14 09:50:24

标签: ios objective-c core-audio

我想从音频文件中读取AudioStreamBasicDescription,如下所示

AudioStreamBasicDescription asdb;
UInt32 propSize = sizeof(asdb);

OSStat stat = ExtAudioFileGetProperty(_audioFile,
                                      kExtAudioFileProperty_FileDataFormat,
                                      &propSize,
                                      &asdb);

除了mBytesPerFramemBitsPerChannelmBytesPerPacket之外的所有字段设置正确外,其他字段都可以正常使用。

为什么不设置这些字段?

AudioStreamBasicDescription&#39的字段是什么样的

TotalFrames: 2628360
BitsPerChannel: 0
BytesPerFrame: 0
BytesPerPacket: 0
ChannelsPerFrame: 2
FormatFlags: 0
FormatID: aac 
FramesPerPacket: 1024
SampleRate: 44100

1 个答案:

答案 0 :(得分:2)

查看CoreAudioTypes.h中AudioStreamBasicDescription上方的评论。它解释了如何根据格式,某些字段可能无法填写。由于AAC是压缩格式,因此不能计算所有字段,因此返回为0.