iphone- [AVAssetReaderAudioMixOutput copyNextSampleBuffer]错误

时间:2011-03-19 08:22:14

标签: iphone

我正在使用AVAssetReader和AVAssetWriter制作多轨道电影。 所以我使用[AVAssetReaderAudioMixOutput copyNextSampleBuffer]和[AVAssetWriterInput appendSampleBuffer]完成了它。

但我一直收到错误:[AVAssetReaderTrackOutput copyNextSampleBuffer]无法复制下一个样本缓冲区,除非资产阅读器处于“读取”状态。 如何解决这个问题。

1 个答案:

答案 0 :(得分:2)

MPMediaQuery *meidaQuery = [[[MPMediaQuery alloc] init] autorelease];
MPMediaItem *mediaItem = [[meidaQuery items] objectAtIndex:0];
AVURLAsset *urlAsset = [AVURLAsset URLAssetWithURL:[mediaItem valueForProperty:MPMediaItemPropertyAssetURL] options:nil];

AVAssetReader *assetReader = [AVAssetReader assetReaderWithAsset:urlAsset error:nil];
AVAssetTrack *assetTrack = [[urlAsset tracksWithMediaType:AVMediaTypeAudio] objectAtIndex:0];
AVAssetReaderTrackOutput *assetReaderTrackOutput = [AVAssetReaderTrackOutput assetReaderTrackOutputWithTrack:assetTrack outputSettings:NULL];
[assetReader addOutput:assetReaderTrackOutput];
[assetReader startReading];

CMSampleBufferRef sampleBufferRef = [assetReaderTrackOutput copyNextSampleBuffer];