Here is a solution in 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)")
}
Note that starting from iOS 10, you must set a description string for NSAppleMusicUsageDescription
in the Info.plist in order to get access to the user’s music.
mediaItem
will be an instance of MPMediaItem
if there is something playing. You can access the media item’s attributes using the value(forProperty:)
method. This methods takes a property. The properties are defined in the documentation for `MPMediaItem under the heading “General Media Item Property Keys”.