通过NSArray循环

时间:2014-01-13 05:33:59

标签: mpmovieplayercontroller

这假设播放NSArray中的所有歌曲,但它只播放一首并停止播放。我究竟做错了什么?该数组包含一大堆链接到不同的.mp3格式的歌曲。

NSArray *array = [myString componentsSeparatedByString:@"\n"];

int nextTag = 1;
for (soundPath in array) {
    NSURL *url = [NSURL URLWithString:soundPath];
    asset = [AVURLAsset URLAssetWithURL:url options:nil];

    yourMediaPlayer = [[MPMoviePlayerController alloc] initWithContentURL:url];
    yourMediaPlayer.controlStyle = MPMovieControlStyleNone;
    yourMediaPlayer.currentPlaybackTime = 0;
    yourMediaPlayer.shouldAutoplay = FALSE;
    [yourMediaPlayer play];
    nextTag++;
}

1 个答案:

答案 0 :(得分:2)

而不是尝试让MPMoviePlayerController播放项目列表,而是使用AVQueuePlayer。它有一个方便的advanceToNextItem方法。

您可以使用AVPlayerIteminitWithItems创建已加载项目(类queuePlayerWithItems)的播放器。然后只需在其上调用play(继承自AVPlayer),就应该一个接一个地播放这些项目。

请参阅:

AVQueuePlayer docs

AVPlayer docs

AV Foundation Programming Guide

AVPlayerItem docs