使用 MPMediaItemPropertyTitle 播放歌曲
Posted
技术标签:
【中文标题】使用 MPMediaItemPropertyTitle 播放歌曲【英文标题】:Play Song using MPMediaItemPropertyTitle 【发布时间】:2016-12-09 10:07:29 【问题描述】:我使用以下代码在 TableView 中获取歌曲标题:
MPMediaQuery *everything = [[MPMediaQuery alloc] init];
NSArray *itemsFromGenericQuery = [everything items];
for (MPMediaItem *song in itemsFromGenericQuery)
NSString *songTitle = [song valueForProperty: MPMediaItemPropertyTitle];
[songTitleArray addObject:songTitle];
现在我想在 tableView 中播放那首歌,我添加了两个按钮播放和停止如何在同一个 ViewController 中使用 Title 播放。
【问题讨论】:
希望这会有所帮助:***.com/questions/13352767/… @Amanpreet 在这个链接上已经说明了如何获得歌曲的标题。我已经获取了标题。现在想玩。 【参考方案1】:要播放歌曲,您可以执行以下操作:
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
来播放歌曲,通过MPMediaPickerController
选好后:
- (void) mediaPicker: (MPMediaPickerController *) mediaPicker
didPickMediaItems: (MPMediaItemCollection *) collection
MPMediaItem *item = [[collection items] objectAtIndex:0];
NSURL *url = [item valueForProperty:MPMediaItemPropertyAssetURL];
[self dismissModalViewControllerAnimated: YES];
// Play the item using MPMusicPlayer
MPMusicPlayerController* appMusicPlayer = [MPMusicPlayerController applicationMusicPlayer];
[appMusicPlayer setQueueWithItemCollection:collection];
[appMusicPlayer play];
// Play the item using AVPlayer
AVPlayerItem *playerItem = [[AVPlayerItem alloc] initWithURL:url];
AVPlayer *player = [[AVPlayer alloc] initWithPlayerItem:playerItem];
[player play];
【讨论】:
在arrayOfMediaItems 中写什么。我从 My sn-ps 中得到了歌曲的标题。有什么方法可以根据我的歌曲标题播放歌曲。我的数组只有歌曲标题。 我不想展示 MPMediaPickerController。所以这个委托方法 didPickMediaItems 没有用 你为什么不直接播放“歌曲”,而不是获取它的标题并保存在“songTitleArray”中。直接播放。 怎么样?用户将了解它是哪首歌。它在我的 tableview 中,想从那个 ViewController 播放而不是 MPMediaPickerController 你可以在tableview中显示它的名字,但是播放歌曲你需要这个“MPMediaItem”,你不能只用字符串播放以上是关于使用 MPMediaItemPropertyTitle 播放歌曲的主要内容,如果未能解决你的问题,请参考以下文章
在使用加载数据流步骤的猪中,使用(使用 PigStorage)和不使用它有啥区别?
Qt静态编译时使用OpenSSL有三种方式(不使用,动态使用,静态使用,默认是动态使用)