Ios 以编程方式获取当前在Swift中播放的曲目的名称和艺术家

Ios 以编程方式获取当前在Swift中播放的曲目的名称和艺术家,ios,swift,Ios,Swift,我尝试了以下方法: let nowPlaying = MPNowPlayingInfoCenter.defaultCenter().nowPlayingInfo 然而,每当我播放歌曲运行它时,我都会返回nil 我希望能够抓取曲目标题和艺术家,并将其显示在我的应用程序中。您设置了它们吗 var audioPlayer:MPMoviePlayerController=MPMoviePlayerController() MPNowPlayingInfoCenter.defaultCenter().

我尝试了以下方法:

let nowPlaying = MPNowPlayingInfoCenter.defaultCenter().nowPlayingInfo
然而,每当我播放歌曲运行它时,我都会返回
nil

我希望能够抓取曲目标题和艺术家,并将其显示在我的应用程序中。

您设置了它们吗

var audioPlayer:MPMoviePlayerController=MPMoviePlayerController()

MPNowPlayingInfoCenter.defaultCenter().nowPlayingInfo = [
    MPMediaItemPropertyAlbumTitle: "Album Title",
    MPMediaItemPropertyTitle: "Title",
    MPNowPlayingInfoPropertyElapsedPlaybackTime: audioPlayer.currentPlaybackTime,
    MPMediaItemPropertyPlaybackDuration: audioPlayer.duration]
正在播放的信息中心支持以下媒体项属性键:

  • MPMediaItemPropertyAlbumTitle
  • MPMediaItemPropertyAllBumTrackCount
  • MPMediaItemPropertyAlbumTrackNumber
  • MPMediaItemPropertyTitist
  • MPMediaItemPropertyNetwork
  • MPMediaItemPropertyComposer
  • MPMediaItemPropertyDiscCount
  • MPMediaItemPropertyDiscNumber
  • MPMediaItemPropertyGenre
  • MPMediaItemPropertyTypersistentId
  • MPMediaItemPropertyPlaybackDuration
  • MPMediaItemPropertyTitle

这不是一个API,用于从音乐或其他应用程序获取当前播放项目信息,而是告诉系统您的应用程序当前正在播放某些内容,并为其提供在锁屏上显示所需的信息


因此,基本上你正在尝试做的事情不会像你期望的那样起作用

你这样做完全是错误的。MPNowPlayingFoCenter与了解当前播放的内容无关。如果您想知道音乐应用程序当前正在播放什么,请询问“iPod音乐播放器”(在iOS 8中,它被称为
MPMusicLayerController.SystemMusicLayer
)。

如果您正在编写iOS应用程序,请尝试此操作

let musicPlayer = MPMusicPlayerController.systemMusicPlayer
if let nowPlayingItem = musicPlayer.nowPlayingItem [
    print(nowPlayingItem.title)
} else {
print("Nothing's playing")
}

问题是如何通过编程方式在swift中获得当前播放曲目的名称和艺术家。这并没有回答此处的文档问题:这里有一个有用的参考: