iOS:是不是真的不可能获取第三方应用程序(如 Spotify)中正在播放的当前曲目的信息?
Posted
技术标签:
【中文标题】iOS:是不是真的不可能获取第三方应用程序(如 Spotify)中正在播放的当前曲目的信息?【英文标题】:iOS : is it really impossible to get info of current track being played in third-party apps (like Spotify)?iOS:是否真的不可能获取第三方应用程序(如 Spotify)中正在播放的当前曲目的信息? 【发布时间】:2017-06-20 17:12:04 【问题描述】:到目前为止,我对此有许多相互矛盾的答案。
在this SO thread,据说使用:
let player = MPMusicPlayerController.systemMusicPlayer()
if let mediaItem = player.nowPlayingItem
// ...
但是,这只适用于 ios 播放器。例如,如果当前歌曲正在由 Spotify 播放,mediaItem
将是 nil
。
我了解 Apple 的政策不允许访问任何其他应用程序的数据。我现在唯一能做的就是在AVAudioPlayer
的secondaryAudioShouldBeSilencedHint
和isOtherAudioPlaying
的帮助下知道一首歌曲是否正在从另一个播放器播放。
但是,我想知道是否有其他方法可以访问它,例如使用Spotify
框架? (我完全不熟悉,这只是假设)。
感谢您的帮助。
【问题讨论】:
【参考方案1】:我不确定 iOS,但可以通过 AppleScript 从 Mac 上的 Spotify 读取当前曲目。我使用了 Objective C 中的这种技术。如果您有兴趣,我可以发布代码。
Spotify 在此处发布他们的 AppleScript API https://developer.spotify.com/applescript-api/
如果您正在寻找一种通用的方法来确定正在播放的内容,那么我认为您会感到失望。每个应用程序都有不同的方式来检索此信息。
【讨论】:
【参考方案2】:所以是和不是。如果您只想专门检查 Spotify 是否正在播放,那么 Spotify iOS SDK 可能会为此类事情提供功能。我真的不知道那个 SDK 的功能。
我冒昧地猜测您的实际目标是查看是否有任何第三方框架在运行; Pandora、Tidal、Apple Music、Amazon Prime Music 等。在这种情况下,您需要为每个提供此类功能的框架提供框架。
为安全起见,应用程序彼此之间被沙盒化,所以是的,除了您是否有框架并且它提供了该功能之外,没有办法告诉当前的跟踪信息。
【讨论】:
以上是关于iOS:是不是真的不可能获取第三方应用程序(如 Spotify)中正在播放的当前曲目的信息?的主要内容,如果未能解决你的问题,请参考以下文章