Сбой 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];
Другие вопросы по тегам