【发布时间】:2016-05-12 22:03:16
【问题描述】:
如何访问另一个应用程序当前正在播放的音频 - 实际的音频项目,但元数据也是受欢迎的。我可以看到这个问题被问了很多,但多年来提供的解决方案很少。我理解苹果的哲学可能不希望应用能够做到这一点。我也知道这样的请求可能在 iOS API 之外。话虽如此,我真的很想要某种解决方案。
从逻辑上来说,我觉得
MPNowPlayingInfoCenter.defaultCenter().nowPlayingInfo
应该返回当前正在播放的任何内容的信息;但是,正如其他人所提到的,对于在您的应用程序之外播放的音频,此值始终为 nil。值得注意的是,流行的音频应用程序似乎无法使用 MPNowPlayingInfoCenter 类,从而导致此类音频无法出现。
如果使用默认音乐应用,可以使用
MPMusicPlayerController.systemMusicPlayer().nowPlayingItem
但是,通过播客应用、Spotify、Pandora、Safari 等访问音频播放的更一致的方式是什么?
有没有人找到解决这个问题的方法?是否有任何旧的 Objective-C 框架支持此功能?
如果有某种方法可以访问当前正在播放的项目的音频路径,那么一种方法可能是可行的。例如,如果我可以获取当前播放项目的路径,我可以从中创建一个 AV 对象:
AVAudioPlayer(contentsOfURL: audioUrl)
那么有没有办法可以获取当前播放项目的音频 url 并以这种方式使用它?
另一种方法更好吗?
如果原生解决方案不存在,是否有可能bodge 一起工作以使其工作?欢迎任何建议或想法。
编辑:我不相信有人能够做到这一点;不过,我想很多人都愿意。如果已解决,请链接! :)
【问题讨论】:
-
您发布的代码可能会返回该信息,但前提是其他玩家将其提供给
MPNowPlayingInfoCenter。 -
我使用 Apple Music 和股票播客应用 @Larme 进行了测试。我执行不正确吗?
-
问题是这是不可能的。您无法获得有关其他应用程序正在做什么的任何信息。想象一个应用程序可以跟踪您在 youtube 或 Safari 上观看的内容。这将是一个巨大的安全威胁。
-
您是否可以选择使用越狱功能或 API 录制系统音频?
-
@Nucl3ic boseconnect 应用程序提供了类似的功能。该应用程序可以控制潘多拉歌曲。任何想法..
标签: ios iphone swift avfoundation