方法一:

这个方法是通过获取到沙盒路径,来得到音乐的路径(使用这个方法需要把音乐放进沙盒)

NSFileManager *manager = [NSFileManager defaultManager];
NSString *Documents = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];
NSLog(@"%@",Documents);
NSString *LocalStr = [[NSString alloc] initWithFormat:@"%@/Music",Documents];
NSLog(@"%@",LocalStr);
NSArray *LocalArr = [[NSArray alloc] init];
LocalArr = [manager contentsOfDirectoryAtPath:LocalStr error:nil];
for(int i = ;i < LocalArr.count;i++){
NSString *str1 = [[NSString alloc] init];
str1 = [LocalArr objectAtIndex:i];
MyMusic *music = [[MyMusic alloc] init];
music.path = [NSString stringWithFormat:@"%@/%@",LocalStr,str1];
NSLog(@"%@",music.path);
if([[str1 pathExtension] isEqualToString:@"mp3"]){
NSUInteger a = str1.length-;
NSRange range = {,a};
str1 = [str1 substringWithRange:range];
music.name = str1;
[self.musicArray addObject:music];
}
}

方法二:

通过访问ipod音乐库(此方法好像必须要真机调试的,因为模拟器上没有ipod音乐库)

MPMediaQuery *listQuery = [MPMediaQuery songsQuery];//playlistsQuery
NSArray *playlist = [listQuery collections];
MPMediaQuery *listQuery = [[MPMediaQuery alloc] init];
NSArray *playlist = [listQuery items];
for(MPMediaPlaylist *list in playlist){
NSArray *songs = [list items];
for(MPMediaItem *song in songs){
NSString *title = [song valueForProperty:MPMediaItemPropertyTitle];
NSString *artlist = [song valueForProperty:MPMediaItemPropertyArtist];
if(artlist != nil && ![self.musicArray containsObject:title]){
[self.musicArray addObject:title];
}
}
}

方法三:

扫描本地的音乐路径(这个方法直接把音乐放进xcode就好)

NSString *song = [[NSString alloc] init];
NSString *singer = [[NSString alloc] init];
UIImage *img;
NSString *resourcePath = [[NSBundle mainBundle] resourcePath];
NSLog(@"resourcePath = %@",resourcePath);
//取出资源目录下所有mp3文件
// NSArray *fileArray = [[NSBundle mainBundle] pathsForResourcesOfType:@"mp3" inDirectory:resourcePath];
NSArray *mp3Array = [NSBundle pathsForResourcesOfType:@"mp3" inDirectory:[[NSBundle mainBundle] resourcePath]]; for(NSString *filePath in mp3Array){
NSLog(@"%@",filePath);
NSURL *fileURL = [NSURL fileURLWithPath:filePath];
AVURLAsset *mp3Asset = [AVURLAsset URLAssetWithURL:fileURL options:nil];
for(NSString *format in [mp3Asset availableMetadataFormats]){
NSLog(@"%@",format);
for(AVMetadataItem *metadataItem in [mp3Asset metadataForFormat:format]){
NSLog(@"%@",metadataItem);
img = nil;
if([metadataItem.commonKey isEqualToString:@"title"]){
song = (NSString *)metadataItem.value;
}else if([metadataItem.commonKey isEqualToString:@"artist"]){
singer = (NSString *)metadataItem.value;
}
else if([metadataItem.commonKey isEqualToString:@"artwork"]){
NSData *data = (NSData*)(metadataItem.value);
img = [UIImage imageWithData:data];
} // else if([metadataItem.commonKey isEqualToString:@"albumName"]){
// albumName = (NSString *)metadataItem.value;
// }
// else if([metadataItem.commonKey isEqualToString:@"artwork"]){
// NSDictionary *dict = (NSDictionary *)metadataItem.value;
// NSData *data = [dict objectForKey:@"data"];
// <pre name="code" class="html">if([metadataItem.commonKey isEqualToString:@"artwork"]){
NSDictionary *dict = (NSDictionary *)metadataItem.value;
NSData *data = [dict objectForKey:@"data"];
image = [UIImage imageWithData:data];
self.albumImage.image = image; image = [UIImage imageWithData:data]; // self.albumImage.image = image; //} } MyMusic *music = [[MyMusic alloc] init]; music.name = song; music.singerName = singer; music.path = filePath; music.image = img; NSLog(@"%@,%@",music.name ,music.singerName); [self.musicArray addObject:music]; } }}

这个方法关于获取音乐的专辑图片我找晚上找到的方法都是下面这句

 if([metadataItem.commonKey isEqualToString:@"artwork"]){  

    NSDictionary *dict = (NSDictionary *)metadataItem.value;
NSData *data = [dict objectForKey:@"data"];//@"value"
image = [UIImage imageWithData:data];
self.albumImage.image = image;
}

iOS - 音乐播放器之怎么获取音乐列表的更多相关文章

  1. iOS - 音乐播放器需要获取音乐文件的一些数据信息(封装获取封面图片的类)

    // // AVMetadataInfo.h // AVMetadata // // Created by Wengrp on 15/10/27. // Copyright © 2015年 Wengr ...

  2. iOS之基于FreeStreamer的简单音乐播放器(模仿QQ音乐)

    代码地址如下:http://www.demodashi.com/demo/11944.html 天道酬勤 前言 作为一名iOS开发者,每当使用APP的时候,总难免会情不自禁的去想想,这个怎么做的?该怎 ...

  3. 音乐播放器之myeclipse项目

    音乐播放器: 这个音乐播放器是用myeclipse打开的项目.假设有问题记得改掉文件的路径名.还有假设图片不显示也可能是图片的路径名不正确,如音乐无法播放也可能是路径名不正确.总之这个游戏有文件的引用 ...

  4. Ubuntu 14.04 用户如何安装深度音乐播放器和百度音乐插件

    播放本地音乐或者收听国外的音乐电台,Ubuntu 14.04 自带的音乐播放器 Rhythmbox 完全能够满足,但是如果你想有像酷狗那样的国内播放器就需要折腾一下,还好有深度音乐播放器,这是一款完全 ...

  5. iOS 音乐播放器之锁屏效果+歌词解析

    概述 功能描述:锁屏歌曲信息.控制台远程控制音乐播放:暂停/播放.上一首/下一首.快进/快退.列表菜单弹框和拖拽控制台的进度条调节进度(结合了QQ音乐和网易云音乐在锁屏状态下的效果).歌词解析并随音乐 ...

  6. 兼容IE7音乐播放器之jplayer的使用

    首先列出为何要写这篇随笔的原因: 1:兼容IE7 2:音乐播放器 3:任意控制播放器 1: 最近做的网站需要兼容IE7,在此之前已经写好了关于音乐播放的插件,火狐,IE8以上,以及谷歌浏览器等都可以随 ...

  7. android播放器如何获取音乐文件信息

    转http://blog.csdn.net/hellofeiya/article/details/8464356, android自带的音乐播放器中,在获取音乐文件信息的时候是通过扫描得到相关信息的. ...

  8. 在线音乐播放器-----酷狗音乐api接口抓取

    首先身为一个在线音乐播放器,需要前端和数据库的搭配使用. 在数据库方面,我们没有办法制作,首先是版权问题,再加上数据量.所以我们需要借用其他网络播放器的数据库. 但是这些在线播放器,如百度,酷狗,酷我 ...

  9. 22_Android中的本地音乐播放器和网络音乐播放器的编写,本地视频播放器和网络视频播放器,照相机案例,偷拍案例实现

    1 编写以下案例: 当点击了"播放"之后,在手机上的/mnt/sdcard2/natural.mp3就会播放. 2 编写布局文件activity_main.xml <Line ...

随机推荐

  1. ML基础 : 训练集,验证集,测试集关系及划分 Relation and Devision among training set, validation set and testing set

    首先三个概念存在于 有监督学习的范畴 Training set: A set of examples used for learning, which is to fit the parameters ...

  2. Oracle:使用二进制工具修改高版本的 exp (dump)文件,以便 低版本 imp 工具 导入

    printf "\x31" | dd of=product_2018-10-08.dmp conv=notrunc bs=1 count=1 seek=12

  3. CCProxy序列号及注册码

    CCProxy无限用户版序列号:JHEHIHCDDAHC 注册码:15f7f78febfaee55afeafefff7cb7fdfb3

  4. 微信支付id出现的重复支付解决方法和app应用中多种支付方式之间的对比

    1.微信支付的transId发起支付请求,未登录微信,先帐号登陆,否则直接去支付.这样的话,该transId跟该帐号绑定起来了, 如果下一次再重新使用该transId来支付请求,但是想切换其他的微信帐 ...

  5. Qt OpenGL裁剪测试

    剪裁测试(Scissor Test)用于限制绘制区域. 我们可以指定一个矩形的剪裁窗口,当启用剪裁测试后,只有在这个窗口之内的像素才能被绘制,其它像素则会被丢弃. 换句话说,无论怎么绘制,剪裁窗口以外 ...

  6. IE8 AJAX 不能正常工作 解决办法

    function crossDomainAjax(url, successCallback) { // IE8 & 9 only Cross domain JSON GET request i ...

  7. Linux中/etc/resolv.conf文件简析

    https://blog.csdn.net/lcr_happy/article/details/54867510

  8. 一些JavaScript基本函数

    1.document.write(”");为 输出语句 2.JS中的注释为// 3.传统的HTML文档顺序是:document->html->(head,body) 4.一个浏览 ...

  9. Web实时通信之Socket.IO

    前面两篇文章使用了Ajax long polling和WebSocket两种常用的Web实时通信方式构建了简单的聊天程序. 但是,由于浏览器的兼容问题,不是所有的环境都可以使用WebSocket这种比 ...

  10. mysql的in查询分析

    群里山楂大仙和电台大神探讨到mysql的in查询的问题,问题如下: student表有class_id的索引,但是只查询一个的时候用索引,查两个就不用索引了 这是很奇怪的现象,我试了一下也是这样,真是 ...