1
我想從一個音頻文件中讀取AudioStreamBasicDescription
如下ExtAudioFileGetProperty返回AudioStreamDescription零幀大小
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
感謝您的提示。我猜是因爲AAC。我認爲'ExtAudioFileRead'會動態解碼到PCM。 –
它會即時解碼,但它需要在解碼過程中才能抓取下一個樣本等。坐在磁盤上,不用解析文件到更大程度,該信息不可用。希望這可以幫助。 – nsdebug
切換到從'AVAssetReaderTrackOutput'讀取'CMSampleBufferRef's。工作正常。 –