首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取当前MPMediaQuery,或MPMediaItemCollection

获取当前MPMediaQuery,或MPMediaItemCollection
EN

Stack Overflow用户
提问于 2011-12-20 15:01:32
回答 2查看 1.3K关注 0票数 0

我想找下一首歌的封面,

我一直在用这个

代码语言:javascript
复制
MPMediaQuery* assetQuery = [[MPMediaQuery alloc] init];

    NSArray *arrayOfItems = [assetQuery items];

    MPMediaItem *mediaItem = [arrayOfItems objectAtIndex:[musicPlayer indexOfNowPlayingItem] + 1];

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

但是今天我发现播放列表有自己的队列,因为我使用的是iPodMusicPlayer,

如果用户来自播放列表中的iPod音乐播放器,在我的应用程序中,他/她会看到下一个项目的错误封面。

有获得当前MPMediaQuery或MPMediaItemCollection的方法吗?

喜欢

musicPlayer nowPlayingSong;

也许就像

musicPlayer nowPlayingQuery;

请回答,谢谢

EN

回答 2

Stack Overflow用户

发布于 2012-11-02 20:04:41

不是的。苹果不提供访问当前播放列表的权限。这使得对内置音乐播放器进行适当替换的编码变得相当困难。

我不知道为什么苹果会为ipod音乐库提供SDK,但却不能完全访问音乐控制器。

它也很笨重。

票数 0
EN

Stack Overflow用户

发布于 2014-04-28 12:04:17

我.。有点..。找到了一个半工半身的解决办法。

您可以访问播放列表,并且可以在某些播放列表中了解当前的歌曲索引。很可能,如果歌曲真的在多个播放列表中找到-更有可能它的索引将是不同的。(但也可以是一样的!)

所以-我找到了最新的歌曲persistentID:

代码语言:javascript
复制
_nowPlayingIPodItemPersistantID = [[[[MPMusicPlayerController iPodMusicPlayer] nowPlayingItem]
        valueForProperty:MPMediaItemPropertyPersistentID] stringValue];

然后,通过将indexOfNowPlayingItem与每首歌曲进行比较,找出哪些播放列表是活动的,其中persistentID等于当前歌曲persistentID:

代码语言:javascript
复制
    MPMediaQuery *query = [MPMediaQuery playlistsQuery];

    int count = 0;

    for (MPMediaPlaylist *playlist in [query collections])
    {
        if(_nowPlayingIPodCollectionItemPersistantID)
        {
            break;
        }

        count = 0;

        for(MPMediaItem *item in [playlist items])
        {
            if([[[item valueForProperty:MPMediaItemPropertyPersistentID] stringValue] isEqualToString:_nowPlayingIPodItemPersistantID]
                && [[MPMusicPlayerController iPodMusicPlayer] indexOfNowPlayingItem] == count)
            {
                _nowPlayingIPodCollectionItemPersistantID = [playlist valueForProperty: MPMediaPlaylistPropertyName];

                break;
            }

            count++;
        }
    }
    //===

不完美,但是嘿..。一定要做点什么对吧?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8577380

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档