我正在阅读AVURLAsset并通过以下调用启动阅读器
AVAssetReaderOutput *assetReaderOutput =
[AVAssetReaderAudioMixOutput
assetReaderAudioMixOutputWithAudioTracks:songAsset.tracks
audioSettings: nil];
使用MPMediaItems URLAsset属性初始化songAsset(AVURLAsset)。
我在某些资产上遇到了崩溃。
[AVAssetReaderAudioMixOutput initWithAudioTracks:audioSettings:] tracks must all have media type AVMediaTypeAudio'
如果MPMediaItem是音频资产并在iTunes中播放,为什么会这样呢?
答案 0 :(得分:0)
而不是songAsset.tracks
,而是使用[songAsset tracksWithMediaType:AVMediaTypeAudio]
。某些资产具有视频和音频轨道,例如iTunes音乐视频。
试试这个
NSArray <AVassetTrack *> *audioTracks = [songAsset tracksWithMediaType: AVMediaTypeAudio];
assetReaderOutput = [AVAssetReaderAudioMixOutput assetReaderAudioMixOutputWithAudioTracks: audioTracks
audioSettings: nil];