iOS - 音乐播放器之怎么获取音乐列表
方法一:
这个方法是通过获取到沙盒路径,来得到音乐的路径(使用这个方法需要把音乐放进沙盒)
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 - 音乐播放器之怎么获取音乐列表的更多相关文章
- iOS - 音乐播放器需要获取音乐文件的一些数据信息(封装获取封面图片的类)
// // AVMetadataInfo.h // AVMetadata // // Created by Wengrp on 15/10/27. // Copyright © 2015年 Wengr ...
- iOS之基于FreeStreamer的简单音乐播放器(模仿QQ音乐)
代码地址如下:http://www.demodashi.com/demo/11944.html 天道酬勤 前言 作为一名iOS开发者,每当使用APP的时候,总难免会情不自禁的去想想,这个怎么做的?该怎 ...
- 音乐播放器之myeclipse项目
音乐播放器: 这个音乐播放器是用myeclipse打开的项目.假设有问题记得改掉文件的路径名.还有假设图片不显示也可能是图片的路径名不正确,如音乐无法播放也可能是路径名不正确.总之这个游戏有文件的引用 ...
- Ubuntu 14.04 用户如何安装深度音乐播放器和百度音乐插件
播放本地音乐或者收听国外的音乐电台,Ubuntu 14.04 自带的音乐播放器 Rhythmbox 完全能够满足,但是如果你想有像酷狗那样的国内播放器就需要折腾一下,还好有深度音乐播放器,这是一款完全 ...
- iOS 音乐播放器之锁屏效果+歌词解析
概述 功能描述:锁屏歌曲信息.控制台远程控制音乐播放:暂停/播放.上一首/下一首.快进/快退.列表菜单弹框和拖拽控制台的进度条调节进度(结合了QQ音乐和网易云音乐在锁屏状态下的效果).歌词解析并随音乐 ...
- 兼容IE7音乐播放器之jplayer的使用
首先列出为何要写这篇随笔的原因: 1:兼容IE7 2:音乐播放器 3:任意控制播放器 1: 最近做的网站需要兼容IE7,在此之前已经写好了关于音乐播放的插件,火狐,IE8以上,以及谷歌浏览器等都可以随 ...
- android播放器如何获取音乐文件信息
转http://blog.csdn.net/hellofeiya/article/details/8464356, android自带的音乐播放器中,在获取音乐文件信息的时候是通过扫描得到相关信息的. ...
- 在线音乐播放器-----酷狗音乐api接口抓取
首先身为一个在线音乐播放器,需要前端和数据库的搭配使用. 在数据库方面,我们没有办法制作,首先是版权问题,再加上数据量.所以我们需要借用其他网络播放器的数据库. 但是这些在线播放器,如百度,酷狗,酷我 ...
- 22_Android中的本地音乐播放器和网络音乐播放器的编写,本地视频播放器和网络视频播放器,照相机案例,偷拍案例实现
1 编写以下案例: 当点击了"播放"之后,在手机上的/mnt/sdcard2/natural.mp3就会播放. 2 编写布局文件activity_main.xml <Line ...
随机推荐
- level 1 -- unit 2 - what 引导的特殊疑问句
特殊疑问句 what 引导的特殊疑问句 常见结构如下: 1. what be sb/sth? 1.1 如 谓语动词是单数is what is your phone number ? what is y ...
- Android 虚拟键盘弹出把底部栏顶上去的解决办法
在AndroidManifest中使用ActivityGroup的activity中加上:android:windowSoftInputMode="adjustPan"
- C++输入cin,输出cout,换行endl,getline连续读取字符
简记:cin=键盘,cout=屏幕. >>和<<指向代表数据流动方向.<<是流插入运算符,右操作数(运算符右边的值)会被插入到输出流中. 首先要包含:#includ ...
- mysql 连接字符串 CONCAT
以前用SQL Server 连接字符串是用“+”,现在数据库用mysql,写个累加两个字段值SQL语句居然不支持"+",郁闷了半天在网上查下,才知道mysql里的+是数字相加的操作 ...
- Go 文件操作(创建、打开、读、写)
https://blog.csdn.net/Tovids/article/details/77887946
- VMware Playerでの仮想マシン起動エラー
Windows Updateすると.翌日VMware Playerの仮想マシン起動時に 「この仮想マシンを構成済み設定でパワーオンするのに十分な物理メモリがありません.」 のエラーとなることが時々あり ...
- 8 -- 深入使用Spring -- 1...两种后处理器
8.1 两种后处理器 Spring框架提供了很好的扩展性,出了可以与各种第三方框架良好整合外,其IoC容器也允许开发者进行扩展,这种扩展甚至无须实现BeanFactor或ApplicationCont ...
- 入门常用SQL及官方文档的使用
SQL语句基础理论 SQL是操作和检索关系型数据库的标准语言,标准SQL语句可用于操作关系型数据库. 5大主要类型: ①DQL(Data Query Language,数据查询语言)语句,主要由于se ...
- Axis2发布服务,支持Tomcat和Weblogic的SSHWeb项目部署
先说下遇到的问题,在SSHWeb项目中使用JDK自带的jar发布WebService(Endpoint.publish),在tomcat下可以正常发布,但是在Weblogic报奇葩错误,如Struts ...
- 几种Bean的复制方法性能比较
由于项目对性能 速度要求很高,表中的字段也很多,存在一个复制方法,耗时相对比较长,经过测试,使用Apache,Spring等提供的方法 耗时较长,使用自己自定义的复制方法时间提升很多,现记录下. 1. ...