我正在iOS上使用AVAssetReader和AVAssetReaderTrackOutput从iPod库中读取音频资源。然而,当我读取数据并将块重新组合时,文件并不完全相同。少了几KB,因此音频文件无法播放。
以下是我用来提取音频数据的代码:
以下是我用来提取音频数据的代码:
// Copy next audio samples
CMSampleBufferRef buffer = [[reader_.outputs objectAtIndex:0] copyNextSampleBuffer];
// Extract bytes from buffer
CMBlockBufferRef dataBuffer = CMSampleBufferGetDataBuffer(buffer);
size_t bufLen = CMBlockBufferGetDataLength(dataBuffer);
UInt8 buf[bufLen];
CMBlockBufferCopyDataBytes(dataBuffer, 0, bufLen, buf);
// Pass data to delegate
if ([delegate respondsToSelector:@selector(assetStream:hasDataAvailable:)]) {
[delegate assetStream:self hasDataAvailable:[NSData dataWithBytes:buf length:bufLen]];
}
// Invalidate buffer
CMSampleBufferInvalidate(buffer);
我在这里做错了什么?