我正在尝试获取有关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。
有没有人遇到过这个问题?你找到了可行的解决方案吗?
谢谢,
答案 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