Сбой AVAssetReader: все треки должны иметь медиа тип AVMediaTypeAudio'
Я читаю AVURLAsset и инициирую читателя с помощью следующего вызова
AVAssetReaderOutput *assetReaderOutput =
[AVAssetReaderAudioMixOutput
assetReaderAudioMixOutputWithAudioTracks:songAsset.tracks
audioSettings: nil];
Компонент songAsset (AVURLAsset) инициализируется с помощью свойства URLAsset MPMediaItems.
Я получаю крах от этого на определенных активах.
[AVAssetReaderAudioMixOutput initWithAudioTracks:audioSettings:] tracks must all have media type AVMediaTypeAudio'
Почему именно так, если MPMediaItem является аудио активом и воспроизводится в itunes?
1 ответ
Вместо songAsset.tracks
использовать [songAsset tracksWithMediaType:AVMediaTypeAudio]
вместо. В некоторых ресурсах есть видео и аудио дорожка, например, музыкальные клипы iTunes.
попробуй это
NSArray <AVassetTrack *> *audioTracks = [songAsset tracksWithMediaType: AVMediaTypeAudio];
assetReaderOutput = [AVAssetReaderAudioMixOutput assetReaderAudioMixOutputWithAudioTracks: audioTracks
audioSettings: nil];