确定第三方应用程序正在 iPhone 上播放的歌曲

Posted

技术标签:

【中文标题】确定第三方应用程序正在 iPhone 上播放的歌曲【英文标题】:Determine song being played on iPhone by third-party app 【发布时间】:2012-01-22 11:49:23 【问题描述】:

我正在尝试确定当前在 iPhone 上播放的歌曲的标题。我知道如果原生 Apple 应用正在播放音乐,我可以使用以下代码找出正在播放的内容,但如果歌曲是从 Spotify 或其他音乐播放应用播放的,我如何找到歌曲的标题?

MPMediaItem *nowPlayingItem = [[MPMusicPlayerController iPodMusicPlayer] nowPlayingItem];
NSString *itemTitle = [nowPlayingItem valueForProperty:MPMediaItemPropertyTitle];

【问题讨论】:

你不能。这是播放应用程序的私有信息。 @weber 你找到解决方案了吗?我目前正在努力解决同样的问题:) 【参考方案1】:

不,如果歌曲在其他应用程序中播放,您将无法获得歌曲的标题!

编辑 1 -

您不能这样做,因为 Apple 有一项非常严格的政策,即在其自己的小沙箱中运行每个应用程序,该沙箱无法访问任何其他应用程序数据。

-- 谢谢埃米尔 ...

【讨论】:

如果您要对问题或答案投反对票,请始终填写 cmets! 我没有投反对票,但您应该在回答中提供更多详细信息。例如:“你不能这样做,因为 Apple 有一项非常严格的政策,即在自己的小沙箱中运行每个应用程序,不能访问任何其他应用程序数据。”。【参考方案2】:

假设应用支持 ios 5 的 MPNowPlayingInfoCenter,您可以这样做:

NSDictionary *info = [[MPNowPlayingInfoCenter defaultCenter] nowPlayingInfo];
NSString *title = [info valueForKey:MPMediaItemPropertyTitle];

【讨论】:

这不起作用,但如果可以以编程方式创建类型为 UIEventTypeRemoteControl 的 UIEvent,我似乎可以使用 MPNowPlayingInfoCenter。知道这是否可能吗?

以上是关于确定第三方应用程序正在 iPhone 上播放的歌曲的主要内容,如果未能解决你的问题,请参考以下文章

Swift 跳过当前在 iPhone 上播放的歌曲

在 iPhone 上:找出当前正在播放的歌曲? (在 iPod 音乐播放器中)[重复]

在我的 iPhone 应用程序中播放 iTunes 歌曲

iPhone :remoteioplayer 如何知道歌曲播放完毕

在 iPhone 上使用 API 无需登录即可Spotify 播放歌曲

在 iPhone 上同时播放多首 MP3 歌曲