0

我正在阅读 AVURLAsset 并通过以下调用初始化阅读器

AVAssetReaderOutput *assetReaderOutput =
[AVAssetReaderAudioMixOutput
 assetReaderAudioMixOutputWithAudioTracks:songAsset.tracks
 audioSettings: nil];

songAsset (AVURLAsset) 使用 MPMediaItems URLAsset 属性进行初始化。

我在某些资产上因此而崩溃。

[AVAssetReaderAudioMixOutput initWithAudioTracks:audioSettings:] tracks must all have media type AVMediaTypeAudio'

如果 MPMediaItem 是音频资产并在 iTunes 中播放,为什么会这样?

4

1 回答 1

0

代替songAsset.tracks,使用[songAsset tracksWithMediaType:AVMediaTypeAudio]代替。某些资产具有视频和音频轨道,例如 iTunes 音乐视频。

尝试这个

NSArray <AVassetTrack *> *audioTracks = [songAsset tracksWithMediaType: AVMediaTypeAudio];
assetReaderOutput = [AVAssetReaderAudioMixOutput assetReaderAudioMixOutputWithAudioTracks: audioTracks
                                                                            audioSettings: nil];
于 2014-07-22T20:25:50.017 回答