方法一:

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

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. jquery获取data-xxx自定义属性的值遇到的问题

    直接用jquery的 data("name") 获取 data-name的值有问题,获取的只是最初的值,即使后边改变也不会变,所以还是要用attr("data-name& ...

  2. gcc 高版本兼容低版本 技巧 :指定 -specs={自定义specs文件} 参数。可以搞定oracle安装问题

    如: #!/bin/sh /usr/bin/gcc-7 -specs=/usr/lib/gcc/x86_64-linux-gnu/jin.spec $* 该技巧很实用.这么久才发现,唉,不是专业搞某个 ...

  3. ubuntu:如何制作类似jeso的系统?

    chroot 下载ubuntu的core包或base包 chroo后,先安装grub,再kernel,基本就ok了! 提示:mount --bind /proc  newroot/proc 可能的问题 ...

  4. eclipse 搜索 正则表达式

    1.换行搜索,如下: \.dyform\([\r]*[\s]*\{

  5. linux添加PYTHONPATH环境变量

    1.添加环境变量到pythonpath export PYTHONPATH=$PYTHONPATH:/home/myproject 查看pythonpathecho $PYTHONPATH 可以进入p ...

  6. 【动态规划】数字分组I

    [动态规划]数字分组I 时间限制: 1 Sec  内存限制: 64 MB提交: 10  解决: 6[提交][状态][讨论版] 题目描述 给出一堆魔法石的重量,问如何分成两堆,使得它们质量和之差最小,求 ...

  7. 测试amqplib实例,报错 Error: connect ECONNREFUSED 127.0.0.1:5672

    研究消息队列处理库amqplib(https://www.npmjs.com/package/amqplib)时,把实例直接拿过来运行的时候报错如下 不知道为什么会出这样的问题,后来跑到github上 ...

  8. VIM_manual

    VIM命令---Vi IMproved, a programmers text editor文本编辑 vim不同模式切换 输入模式 末行模式 光标移动 复制-粘贴-删除 可视模式 末行模式下的操作 v ...

  9. Cookie利用神器:CookieHacker

    转自evilcos的博客 看到那么多苦逼的跨站师在问Cookie利用工具,不忍心,还是把自己写的Chrome扩展开源出来吧,功能极简,仿造<我的渗透利器>里提到的Original Cook ...

  10. 使用 requests 维持会话

    什么是 Cookie 和 Session: 简单来说,我们访问每一个互联网页面,都是通过 HTTP 协议进行的,而 HTTP 协议是一个无状态协议,所谓的无状态协议即无法维持会话之间的状态.比如,仅使 ...