方法一:

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

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. Gridview、DataList、Repeater获取行索引号

    Gridview.DataList.Repeater如何获取行索引号?很多情况下都会用得到,下面贴出代码,注意行索引号是从0开始,不是从1开始,如果要从1开始,请在代码里面+1就行了. Gridvie ...

  2. javascript关于onclick()

    1 <html> <head> <title>js1 </title> <style> #content{ margin:0 auto; t ...

  3. hdu5289 2015多校联合第一场1002 Assignment

    题意:给出一个数列.问当中存在多少连续子区间,当中子区间的(最大值-最小值)<k 思路:设dp[i]为从区间1到i满足题意条件的解.终于解即为dp[n]. 此外 如果对于arr[i] 往左遍历 ...

  4. linux_开发软件安装=命令步骤

    1.Linux 操作系统软件安装以及redis 学习    JDK ----- Java开发运行环境    Tomcat -- WEB程序的服务器    MySQL --- 持久化存储数据    Re ...

  5. Linux+Redis实战教程_Linux上安装jdk,mysql,tomcat_安装jdk

    1. Linux上安装jdk,mysql,tomcat[重点] Windows 控制面板 添加/卸载程序 进行程序的安装.更新.卸载.查看 rpm命令:相当于windows的添加/卸载程序 进行程序的 ...

  6. 8 -- 深入使用Spring -- 3...3 使用Resouce作为属性

    8.3.3 使用Resouce作为属性 当应用程序中的Bean实例需要访问资源时,Spring可以直接利用依赖注入. 如果Bean实例需要访问资源,有如下两种解决方案: ⊙ 在代码中获取Resourc ...

  7. trim思考

    今天发现后台订单商品名称没有的时候出现了HTML代码,然后看了一下源代码(下图是简化版本的) <?php $name = trim('<span style="font-weig ...

  8. UnicodeEncodeError: ‘gbk’ codec can’t encode character u’\u200e’ in position 43: illegal multib

    [问题] 在执行代码时,提示上述错误,源码如下: # 下载小说... def download_stoy(crawl_list,header): # 创建文件流,将各个章节读入内存 with open ...

  9. windows命令行下用netsh实现端口转发(端口映射)

    微软Windows的netsh是一个命令行脚本实用工具.使用netsh工具 ,可以查看或更改本地计算机或远程计算机的网络配置.不仅可以在本地计算机上运行这些命令,而且可以在网络上的远程计算机上运行. ...

  10. error:please select android sdk

    发现问题所在就是 在model iml文件中: 把<orderEntry type="inheritedJdk" /> 改成 <orderEntry type=& ...