在iPhone上的Spotify中播放当前歌曲

访问MPMusicPlayerController.systemMusicPlayer() (下面的代码)可以获取Apple Music应用程序中正在播放的内容的跟踪信息,但是有没有办法可以访问Spotify应用程序中播放的当前歌曲的信息?

此代码中发布的代码我需要知道如何获取有关哪个播放器当前正在播放的信息(播放器,spotify,napster ……)使用MPNowPlayingInfoCenter ,无论是使用Apple Music还是Spotify等都是零。

  let player = MPMusicPlayerController.systemMusicPlayer() @IBAction func getMusicButton(_ sender: UIButton) { if let mediaItem = player.nowPlayingItem { let title: String = mediaItem.value(forProperty: MPMediaItemPropertyTitle) as! String let albumTitle: String = mediaItem.value(forProperty: MPMediaItemPropertyAlbumTitle) as! String let artist: String = mediaItem.value(forProperty: MPMediaItemPropertyArtist) as! String print("\(title) on \(albumTitle) by \(artist)") } } 

Apple文档声明有两种类型的音乐播放器:

  • 应用音乐播放器在您的应用中本地播放音乐。 它不知道音乐应用程序正在播放的项目,也不会影响音乐应用程序的状态。 有两个应用音乐播放器: applicationMusicPlayerapplicationQueuePlayer 。 应用程序队列播放器提供对队列内容的更大控制,是首选播放器。
  • 系统音乐播放器代表您使用内置的音乐应用程序。 在实例化时,它采用当前的音乐应用状态,例如现在播放项目的标识。 如果用户在播放音乐时切换您的应用程序,则该音乐将继续播放。 音乐应用程序然后具有您的音乐播放器最近设置的重复模式,随机播放模式,播放状态和现在播放的项目。

第一个是仅在您的应用程序中,第二个是Apple Music应用程序,因为您无法在普通应用程序中触及应用程序的沙箱,这在App Store应用程序中是不可能的。

但是,如果您仍想创建自己的想法,可以在越狱设备上进行开发。 这个github项目有一个简单的例子,说明如何在越狱调整中获得当前的播放歌曲。 如果你想尝试一下, 这是一个很好的,有点旧,仍然准确的教程如何开始进行调整。


更新

我刚刚遇到这个Spotify SDK ,它允许用户登录并播放用户Spotify音乐。 通过这种方式,音乐流将位于您的应用内,您可以访问applicationMusicPlayer中的所有信息。 不利的一面是,设置这项工作要比获取有关Spotify的播放曲目的信息要多得多,用户必须从您的应用程序而不是Spotify应用程序播放他的音乐。