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

Ios 在iPhone上的Spotify中播放当前歌曲,ios,swift,spotify,Ios,Swift,Spotify,访问MPMusicLayerController.SystemMusicLayer()(下面的代码)可以获取苹果音乐应用程序中播放的曲目信息,但是我们有没有办法访问Spotify应用程序中播放的当前歌曲的信息 此答案中发布的代码使用了mpnowplayingfocenter,无论是使用苹果音乐还是Spotify等,该代码均为零 let player = MPMusicPlayerController.systemMusicPlayer() @IBAction func getMus

访问
MPMusicLayerController.SystemMusicLayer()
(下面的代码)可以获取苹果音乐应用程序中播放的曲目信息,但是我们有没有办法访问Spotify应用程序中播放的当前歌曲的信息

此答案中发布的代码使用了
mpnowplayingfocenter
,无论是使用苹果音乐还是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)")
        }

    }

苹果的文档说明有两种类型的音乐播放器:

  • 应用程序音乐播放器在应用程序中本地播放音乐。它不知道音乐应用程序正在播放的项目,也不知道 影响音乐应用程序的状态。有两个应用程序音乐播放器:
    ApplicationMusicLayer
    applicationQueuePlayer
    。应用程序 队列播放器提供了对队列内容的更大控制 并且是首选玩家
  • 系统音乐播放器代表您使用内置音乐应用程序。实例化时,它呈现当前音乐应用程序状态, 例如正在播放的项目的标识。如果用户切换 在播放音乐时远离应用程序,音乐会继续播放 玩然后,音乐应用程序会显示您的音乐播放器的最新设置 重复模式,洗牌模式,播放状态,现在播放项目
第一个是在你的应用程序中,第二个是苹果音乐应用程序,因为在普通应用程序中你无法从应用程序的沙盒中伸出手,这在应用商店应用程序中是不可能的

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


更新


我刚刚遇到了一个可以让用户登录并播放用户Spotify音乐的程序。这样,音乐流将进入你的应用程序,你可以访问applicationMusicPlayer中的所有信息。不利的一面是,这将需要更多的设置工作,而不仅仅是获取有关Spotify播放曲目的信息,用户将不得不从您的应用程序而不是Spotify应用程序播放他的音乐。

这对您有帮助吗?不可能重复此代码不会返回Apple Music或Spotify的信息,请查看我的上述编辑。您找到解决方案了吗?我没有@KyleGoslan我的理解是这是一个沙箱问题,而我们无法检测Spotify(第三方应用程序)的内容只是在播放苹果音乐。我认为sdk是为其他东西而构建的。根据他们的描述——“此框架包含从Spotify流式传输音频内容所必需的功能。”@Rishabh streaming Spotify audio content意味着音乐信息将出现在你的应用程序音乐播放器中,不是吗?哦,我明白了。这可能是正确的。但我在git看到了同样的开放特性请求:我认为这个答案是不正确的。
Bose Connect
iOS应用程序成功地实现了这一点。它可以获取当前播放的媒体详细信息和
Audible
Spotify
的播放控制
Bose Connect
确实要求其他应用程序已准备就绪,以便您控制播放并获取媒体详细信息。我正在考虑复制Bose Connect的播放功能。虽然我想知道他们连接的蓝牙音频设备QC35是否正在接收数据并与应用程序共享,而不是SystemMusicLayer。@Ryderpro我假设他们是通过蓝牙完成的,但api可能已更改。这个答案已经有一年历史了,如果你发现了什么,请毫不犹豫地更新它!