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 に答える