的StackOverflow 我想尝试使用swift lang从ios7 +中的控制中心读取当前播放的歌曲 在objective-c中,我可以使用此代码阅读它
NSDictionary *nowPlaying = @{MPMediaItemPropertyArtist: currentTrack.artist,
MPMediaItemPropertyAlbumTitle: currentTrack.title};
但我不知道如何在swift中编写song_info_getter方法 附:我无法在SO上找到类似的问题
具体来说,我无法获取当前的曲目信息。 (艺术家/专辑/等)
我在桌面(mac)上做了这个:
func get_iTunes_data() {
NSDistributedNotificationCenter.defaultCenter().addObserver(self, selector: "allDistributedNotifications:", name: "com.apple.iTunes.playerInfo", object: "com.apple.iTunes.player")
}
var now : String = ""
func allDistributedNotifications (note : NSNotification) {
let userInfo:NSDictionary = note.userInfo as NSDictionary
println(userInfo)
}
但我不知道如何为iOS制作这样的
答案 0 :(得分:3)
在iOS上,这实际上是无痛的。 MPMusicPlayerController类提供了以MPMediaItem形式访问正在播放的项目的方法,其中包含所有这些信息。
iOS 8 +
let nowPlaying = MPMusicPlayerController.systemMusicPlayer().nowPlayingItem
在iOS 8之前
let nowPlaying = MPMusicPlayerController.iPodMusicPlayer().nowPlayingItem
然后从MPMediaItem中提取从上面返回的各条信息。请记住,所有不同的键都以MPMediaItemProperty开头......但并非所有键都返回字符串。有些人会返回NSNumbers等。请参阅文档以获取相关信息。
let trackName = nowPlaying.valueForProperty(MPMediaItemPropertyTitle) as String
抱歉,我是为MPMusicPlayController做的。以下是如何从MPNowPlayingInfoCenter访问信息。
let nowPlaying = MPNowPlayingInfoCenter.defaultCenter().nowPlayingInfo