繁体   English   中英

如何在iOS中的MPMusicPlayerController中播放MPMediaItem?

[英]How to play MPMediaItem in MPMusicPlayerController in iOS?

我试图在iOS中的MPMusicPlayerController中播放MPMedaiItem 在我的情况下,我有一个UITableView显示播放列表中的歌曲。 当我点击UITableView单元格时,我想用MPMusicPlayerController播放该歌曲。 当我点击下一步按钮时,我还想跳过播放列表中的下一首歌曲。 我该怎么玩?

以下是我在UITableView didSelected方法中编写的一些代码。 那不起任何作用。

    MPMediaItemCollection *songs = [self.arrayOfSongs objectAtIndex:indexPath.row ];

    MPMediaItem *item = [songs representativeItem ];

    NSLog(@"%@",[item valueForProperty:MPMediaItemPropertyTitle ]);

    [self.player setNowPlayingItem:[item valueForProperty:MPMediaItemPropertyAssetURL]];

    [self.player play ];

我知道这有点晚了,但问题是MPMusicPlayerControllernowPlayingItem属性需要一个MPMediaItem对象,并且你传递的是一个包含资产URL的NSString 这是一个如何实现这一目标的例子。

MPMusicPlayerController *controller = [MPMusicPlayerController iPodMusicPlayer];

MPMediaItemCollection *collection = [[MPMediaItemCollection alloc] initWithItems:arrayOfMediaItems];
MPMediaItem *item = [collection representativeItem];

[controller setQueueWithItemCollection:collection];
[controller setNowPlayingItem:item];

[controller prepareToPlay];
[controller play];

我发现在这样的实例中使用AVPlayer更容易。

在头文件中声明AVPlayer对象;

AVPlayer *audioPlayer;

然后在你的方法文件中使用类似的东西:

if(!audioPlayer){
   audioPlayer = [[AVPlayer alloc] initWithURL:[item valueForProperty:MPMediaItemPropertyAssetURL]];
} else {
   [audioPlayer replaceCurrentItemWithPlayerItem:[AVPlayerItem playerItemWithURL:itemURL]];
}
[audioPlayer play];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM