2012-07-26 146 views
0

我使用AVPlayer时,当我从我的iPod库中选择多首歌曲时,只要第一首歌曲播放出来,那些选定的歌曲就会显示在名为playlistTableView的UITableview中,不会继续播放第二首歌曲。我希望播放器继续播放歌曲,直到playlistTableView中没有歌曲。播放第一首歌曲后,我的播放器停止播放

+0

什么是你的代码传递歌曲播放给玩家? – rdelmar 2012-07-26 03:39:26

+0

NSURL * assetUrl = [mediaItemCollection.representativeItem valueForProperty:MPMediaItemPropertyAssetURL]; AVRLAsset * asset = [AVURLAsset URLAssetWithURL:assetUrl options:nil]; //创建播放器项目 AVPlayerItem * playerItem = [AVPlayerItem playerItemWithAsset:asset]; [code] //播放 myPlayer = [AVPlayer playerWithPlayerItem:playerItem]; collectionMutableCopy = [mediaItemCollection.items mutableCopy]; [self.myPlaylistTable reloadData]; [myPlayer play]; 这是我的代码 – coded 2012-07-26 05:20:17

回答

1

在iOS 4.1及更高版本中,可以使用AVQueuePlayer对象按顺序播放多个项目。 AVQueuePlayer是AVPlayer的一个子类。您初始化一个队列球员与球员元素的数组:

NSArray *items = <#An array of player items#>; 
AVQueuePlayer *queuePlayer = [[AVQueuePlayer alloc] initWithItems:items]; 

您可以使用播放然后播放队列,就像你的AVPlayer对象。队列播放器依次播放每个项目。如果您想跳到下一个项目,则向队列播放器发送advanceToNextItem消息。 您可以使用insertItem修改队列:afterItem :, removeItem :,和removeAllItems。添加新项目时,通常应使用canInsertItem:afterItem:检查是否可以插入到队列中。您传递零作为第二个参数来测试新项目是否可以附加到队列:

AVPlayerItem *anItem = <#Get a player item#>; 
if ([queuePlayer canInsertItem:anItem afterItem:nil]) 
{ 
    [queuePlayer insertItem:anItem afterItem:nil]; 
} 

欲了解更多信息,请参阅下面的文档。

http://developer.apple.com/library/ios/#documentation/AudioVideo/Conceptual/AVFoundationPG/Articles/00_Introduction.html#//apple_ref/doc/uid/TP40010188

+1

NSURL * assetUrl = [mediaItemCollection.representativeItem valueForProperty:MPMediaItemPropertyAssetURL]; AVURLAsset * asset = [AVURLAsset URLAssetWithURL:assetUrl options:nil]; //创建播放器项AVPlayerItem * playerItem = [AVPlayerItem playerItemWithAsset:asset]; [code] //播放myPlayer = [AVPlayer playerWithPlayerItem:playerItem]; collectionMutableCopy = [mediaItemCollection.items mutableCopy]; [self.myPlaylistTable reloadData]; [myPlayer play];这是我的代码 – coded 2012-07-26 06:37:38

相关问题