この問題は、オーディオの再生を頻繁に停止および開始し、ExtAudioFileRef
オブジェクトを介して AAC オーディオ ファイル内を何度もシークするときに発生します。まれに、この奇妙な動作は次のように表示されExtAudioFileRead
ます。
場合によっては、これらの番号をmDataByteSize
の のみAudioBuffer
に割り当てAudioBufferList
ます。
-51604480
-51227648
-51350528
-51440640
-51240960
16 進数では、これらの数値のパターンは0xFC....00
です。
コード:
status = ExtAudioFileRead(_file, &numberFramesRead, ioData);
printf("s=%li d=%p d.nb=%li, d.b.d=%p, d.b.dbs=%li, d.b.nc=%li\n", status, ioData, ioData->mNumberBuffers, ioData->mBuffers[0].mData, ioData->mBuffers[0].mDataByteSize, ioData->mBuffers[0].mNumberChannels);
出力:
s=0 d=0x16668bd0 d.nb=1, d.b.d=0x30de000, d.b.dbs=1024, d.b.nc=2 // good (usual)
s=0 d=0x16668bd0 d.nb=1, d.b.d=0x30de000, d.b.dbs=-51240960, d.b.nc=2 // misbehaving
この問題は、iOS 7 の iPhone 4S で発生します。シミュレーターで問題を再現できませんでした。