概述
首先是了解一下 iPod Library Access
,知道本地音乐文件的来源。接着就是知道如何使用播放器的类实例 MPMusicPlayerController
,去播放本地的音乐文件。这样基本就可以了,为了把Apple的文档使用多一些。尝试使用 Media item picker
,深入再操作一下 iPod Library
.
接触的类有:
- MPMediaItem
- MPMusicPlayerController
- MPMediaQuery
其他参考类
- MPMediaGroupingAlbum
- MPMediaLibrary
目录
使用前提醒
需要头文件
1 | /** |
About iPod Library Access
如果你想播放本地的音乐,首先你要知道它存放的位置,iPod Library 就是存放它的地方。
而这个地方也是一个数据库
-
然后就是,我们的应用使用
Media Query
去获取iPod Library
的音乐文件,然后应用交给Music Player
去播放它们。然后在对照上图,就可以大概知道一个情况了。
了解数据库的状态的改变,这需要
MPMediaLibraryDidChangeNotification
来作为通知。
返回的内容是一个 MPMediaItem
的数组,MPMediaItem
包含了一个媒体文件所有信息。
获取所有的音乐文件,我们还需要一个 MPMediaQuery
, 这个类的实例可以用于初始化播放器的播放内容。
1 | MPMediaQuery *mySong = [MPMediaQuery songsQuery]; // 这样我们就可以得到了本地音乐文件的所有内容啦 |
想对 MPMediaQuery 有更多的使用有更多的了解
更多关于播放队列
Media playback
说好的播放器,就需要一个播放器实例啦。那就是 MPMusicPlayerController
.
1 | /* 生成一个播放器的实例 */ |
但是,有了播放器,还需要播放的文件呢!上面我们的到了播放文件列表的一个 MPMediaQuery 实例。Just do it
1 | [player setQueueWithQuery: [MPMediaQuery songsQuery]]; |
还没有完哦,如果播放器的播放状态改变了,我们也需要这个消息通知
1 | /** |
然后就可以开始播放了。。。
1 | /** |
到这里基本就没有了,一个简单的没有界面的播放器就完成了
更多关于 Media Query
Using a media query to access the device iPod library
Using a media query to access the device iPod library
上文我们得到的 MPMediaQuery 的实例 mySong.和图中的 myQuery 一样的。
media query
提供了一个对于 iPod Library
的一个搜索描述,告诉数据库如何去获取相应的 media item
,并且还有如何组织这些 item
有两个配置属性
- The `filter` is the description of what to retrieve. The filter is optional; a filterless query matches the entire iPod library.
- The `grouping` type is an optional key that specifies the arrangement to use for retrieved collections of media items.
更多关于播放队列
有两种方法去设置播放的队列内容
Use a media item
collection
1
2
3
4/**
musicPlayer 是 MPMusicPlayerController 的实例
*/
[musicPlayer setQueueWithItemCollection: userMediaItemCollection];Use a
media query
, which implicitly defines a collection1
2
3
4/**
musicPlayer 是 MPMusicPlayerController 的实例
*/
[musicPlayer setQueueWithQuery: [MPMediaQuery songsQuery]];
更多关于使用iPod Library
- 如何使用更好的使用iPod Library
Using the iPod library database access classes
参考官方文档
关于如何使用item picker
参考链接信息
iPod Library Access Programming Guide