我想从音频文件中读取AudioStreamBasicDescription
,如下所示
AudioStreamBasicDescription asdb;
UInt32 propSize = sizeof(asdb);
OSStat stat = ExtAudioFileGetProperty(_audioFile,
kExtAudioFileProperty_FileDataFormat,
&propSize,
&asdb);
正常工作,除了
mBytesPerFrame
,mBitsPerChannel
和mBytesPerPacket
以外的所有字段均已正确设置。为什么不设置这些字段?
这就是
AudioStreamBasicDescription
的字段的样子TotalFrames: 2628360
BitsPerChannel: 0
BytesPerFrame: 0
BytesPerPacket: 0
ChannelsPerFrame: 2
FormatFlags: 0
FormatID: aac
FramesPerPacket: 1024
SampleRate: 44100
最佳答案
看一下CoreAudioTypes.h中AudioStreamBasicDescription上方的注释。它说明了如何根据格式来填充某些字段。由于AAC是压缩格式,因此并非所有字段都可以计算,因此将其返回为0。
关于ios - ExtAudioFileGetProperty返回具有零帧大小的AudioStreamDescription,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22401442/