首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MPNowPlayingInfoCenter迅捷

MPNowPlayingInfoCenter迅捷
EN

Stack Overflow用户
提问于 2014-08-06 10:54:52
回答 1查看 3.2K关注 0票数 1

StackOverflow我想试着阅读ios7+控制中心的当前播放歌曲,使用目标-c中的快速lang,我可以用下面的代码来读取它。

代码语言:javascript
复制
NSDictionary *nowPlaying = @{MPMediaItemPropertyArtist: currentTrack.artist,
                             MPMediaItemPropertyAlbumTitle: currentTrack.title};

但我不知道song_info_getter方法是如何在快速的P.s中编写的。我找不到类似的问题

具体来说,我很难获得当前的轨道信息。(艺人/专辑/等)

我在桌面(Mac)上做了这个:

代码语言:javascript
复制
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做这样的事

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-06 11:53:20

在iOS上,这实际上是无痛的。MPMusicPlayerController类提供了以MPMediaItem的形式访问当前播放项的方法,其中包含所有这些信息。

iOS 8+

代码语言:javascript
复制
let nowPlaying = MPMusicPlayerController.systemMusicPlayer().nowPlayingItem

在iOS 8之前

代码语言:javascript
复制
let nowPlaying = MPMusicPlayerController.iPodMusicPlayer().nowPlayingItem

然后,从上面返回的MPMediaItem中提取单个信息片段。请记住,所有不同的键都以MPMediaItemProperty开头.但并不是所有的人都会返回字符串。一些人将返回NSNumbers等。有关这方面的信息,请参阅文档。

代码语言:javascript
复制
let trackName = nowPlaying.valueForProperty(MPMediaItemPropertyTitle) as String

真实答案

对不起,我这么做是为了MPMusicPlayController。下面是如何从MPNowPlayingInfoCenter访问信息。

代码语言:javascript
复制
let nowPlaying = MPNowPlayingInfoCenter.defaultCenter().nowPlayingInfo
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25158559

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档