使用 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有三种方式(不使用,动态使用,静态使用,默认是动态使用)

MySQL db 在按日期排序时使用“使用位置;使用临时;使用文件排序”

使用“使用严格”作为“使用强”的备份

Kettle java脚本组件的使用说明(简单使用升级使用)