关于iOS获取音乐库的音乐信息 (获取本地音乐文件)

来源:互联网 发布:修改图片大小软件 编辑:程序博客网 时间:2024/05/18 19:42

年前在项目开发的时候,当时有一个上传本地音乐文件的一个功能。需求是从本地获取音乐文件,并对音乐文件进行截取。

实现获取本地音乐文件的方法的代码如下:

MPMediaQuery *allMp3 = [[MPMediaQuery alloc] init];        // 读取条件        MPMediaPropertyPredicate *albumNamePredicate =        [MPMediaPropertyPredicate predicateWithValue:[NSNumber numberWithInt:MPMediaTypeMusic ] forProperty: MPMediaItemPropertyMediaType];        [allMp3 addFilterPredicate:albumNamePredicate];        NSLog(@"Logging items from a generic query...");        self.allMusicItems = [allMp3 items];        for (MPMediaItem *song in _allMusicItems) {//            NSString *songTitle = [song valueForProperty: MPMediaItemPropertyTitle];            NSString *songTitle = song.title;            NSLog (@"%@, %@, %@", songTitle, song.assetURL,song.artist);        }/**  注: 使用 - (id) valueForProperty: (NSString *) property 的方法获取音乐的名称和使用点语法出来的结果是一样的。 这是苹果给出的解释: MP_EXTERN NSString * const MPMediaItemPropertyPersistentID NS_AVAILABLE_IOS(4_2);               // filterable@property (nonatomic, readonly) MPMediaEntityPersistentID persistentID NS_AVAILABLE_IOS(5_0);MP_EXTERN NSString * const MPMediaItemPropertyMediaType;                                        // filterable@property (nonatomic, readonly) MPMediaType mediaType NS_AVAILABLE_IOS(7_0);MP_EXTERN NSString * const MPMediaItemPropertyTitle;                                            // filterable@property (nonatomic, readonly, nullable) NSString *title NS_AVAILABLE_IOS(7_0);MP_EXTERN NSString * const MPMediaItemPropertyAlbumTitle;                                       // filterable@property (nonatomic, readonly, nullable) NSString *albumTitle NS_AVAILABLE_IOS(7_0);*/ 

但是,出现问题了,获取本地的音乐文件除了音乐文件的路径(也就是assetURL)为空,获取不到,其它的音乐名称,歌手都可以获得,开始以为是哪里出现问题,开始各种百度,谷歌,终于找到问题了

由于iPhone 自带的音乐软件Music的推出.从iPod取出来的音乐MPMediaItemPropertyAssetURL属性可能为空.
这是因为iPhone自带软件Music对音乐版权的保护,对于所有进行过 DRMProtection(数字版权加密保护)的音乐都不能被第三方APP获取并播放.即使这些音乐已经下载到本地.但是还是可以播放本地未进行过数字版权加密的音乐.也就是您自己手动导入的音乐。

那这也太坑了,自己获取音乐文件还要在手动导入吗? 所以商量过后,果断砍掉这个小功能。所以,在这里记录一下,如果给做相关功能开发的人提示。这个问题也没有妥善解决,如果谁有解决的了,也可以告诉我们,大家一起学习吗?

这里有一篇详细介绍关于获取音乐库音乐文件的相关博客 http://www.cnblogs.com/lyanet/archive/2013/03/27/2985019.html

0 0
原创粉丝点击