2013-03-13 1 views
0

Я читала AVURLAsset и инициализировать читатель следующего вызоваAVAssetReader Краш: треки все должны иметь типа материала для печати AVMediaTypeAudio»

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

songAsset (AVURLAsset) инициализируются со свойством MPMediaItems URLAsset.

Я получаю срыв от этого по определенным активам.

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

Почему именно это, если MPMediaItem является аудио активом и играет в itunes?

+0

Является ли этот файл доступен локально или это совпадение песня ITunes? Если это последний, сначала необходимо загрузить файл. iTunes передает эти файлы, поэтому он отлично работает, но не в вашем коде. – BlueVoodoo

+0

Я добавил эти файлы локально. – jarryd

+0

Я просто видел, что это файлы .mov. Как проверить AVMediaTypeAudio? – jarryd

ответ

0

Вместо songAsset.tracks вместо этого использовать [songAsset tracksWithMediaType:AVMediaTypeAudio]. В некоторых активах есть видео и аудио треки, такие как музыкальные видеоклипы iTunes.

попробовать это

NSArray <AVassetTrack *> *audioTracks = [songAsset tracksWithMediaType: AVMediaTypeAudio]; 
assetReaderOutput = [AVAssetReaderAudioMixOutput assetReaderAudioMixOutputWithAudioTracks: audioTracks 
                      audioSettings: nil]; 

 Смежные вопросы

  • Нет связанных вопросов^_^