从Spotify iOS应用程序获取当前播放的歌曲

时间:2013-12-11 06:36:28

标签: spotify mpnowplayinginfocenter

我正在尝试获取有关Spotify iOS应用中当前播放歌曲的信息。方案如下:打开Spotify iOS应用程序,开始播放歌曲。将应用程序置于后台并打开我的iOS应用程序。有什么方法可以让我在iOS应用程序中的Spotify上播放这首歌吗?

我已尝试使用本帖所述的nowPlayingItem属性,但它不起作用:On iPhone: Find out what song is currently playing? (in the iPod music player)

我已尝试使用[帖子中描述的[MPNowPlayingInfoCenter defaultCenter] .nowPlayingInfo,但它不起作用:Is there a way to access the currently played track while the iPhone is connected to an accessory?

我在苹果开发人员论坛上的帖子中看到了同样的问题:https://devforums.apple.com/message/903640#903640

有没有人遇到过这个问题?你找到了可行的解决方案吗?

谢谢,

4 个答案:

答案 0 :(得分:6)

以下是Swift 3中的解决方案:

let player = MPMusicPlayerController.systemMusicPlayer()
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)")
}

请注意,从iOS 10开始,您必须在Info.plist中为NSAppleMusicUsageDescription设置说明字符串,以便访问用户的音乐。

如果有播放内容,

mediaItem将成为MPMediaItem的实例。您可以使用value(forProperty:)方法访问媒体项的属性。此方法具有属性。这些属性在标题为" General Media Item Property Keys"的标题下的MPMediaItem中定义。

答案 1 :(得分:1)

如果我没错,Apple不允许程序共享数据(出于安全原因)。也许这就是问题所在。

答案 2 :(得分:1)

借助最新版本的Spotify iOS SDK(于2018年9月左右推出),您现在可以订阅播放器事件并检测何时开始播放新曲目。

有关更多信息,请查看他们的the quick-start tutorial

答案 3 :(得分:-1)

首先您需要将 Spotify 应用程序连接到您的应用程序,然后您可以从 SPTAppRemotePlayerState?.track.uri 从这里你得到 uri