扫描本地音乐文件

  1. //扫描本地音乐文件,返回艺术家列表 需要库MediaPlayer.framework  
  2. -(NSArray*) findArtistList {  
  3.     NSMutableArray *artistList = [[NSMutableArray alloc]init];  
  4.     MPMediaQuery *listQuery = [MPMediaQuery playlistsQuery];//播放列表  
  5.     NSArray *playlist = [listQuery collections];//播放列表数组  
  6.     for (MPMediaPlaylist * list in playlist) {  
  7.         NSArray *songs = [list items];//歌曲数组  
  8.         for (MPMediaItem *song in songs) {  
  9.             NSString *title =[song valueForProperty:MPMediaItemPropertyTitle];//歌曲名  
  10.             //歌手名  
  11.             NSString *artist =[[song valueForProperty:MPMediaItemPropertyArtist] uppercaseString];  
  12.             if(artist!=nil&&![artistList containsObject:artist]){  
  13.                 [artistList addObject:artist];  
  14.             }  
  15.         }  
  16.     }  
  17.     return artistList;  
  18. }  
你可以使用Android自带的MediaStore类来扫描本地音乐文件。下面是一个简单的示例代码: ``` private void scanMusicFiles() { // 定义要查询的列 String[] projection = new String[]{ MediaStore.Audio.Media._ID, MediaStore.Audio.Media.DATA, MediaStore.Audio.Media.TITLE, MediaStore.Audio.Media.ARTIST, MediaStore.Audio.Media.ALBUM, MediaStore.Audio.Media.DURATION, MediaStore.Audio.Media.SIZE }; // 定义查询条件,只查询音频文件 String selection = MediaStore.Audio.Media.IS_MUSIC + " != 0"; // 查询音乐文件 Cursor cursor = getContentResolver().query( MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, projection, selection, null, null ); // 遍历查询结果 if (cursor != null) { while (cursor.moveToNext()) { // 获取音乐文件的信息 long id = cursor.getLong(cursor.getColumnIndex(MediaStore.Audio.Media._ID)); String path = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DATA)); String title = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.TITLE)); String artist = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST)); String album = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ALBUM)); long duration = cursor.getLong(cursor.getColumnIndex(MediaStore.Audio.Media.DURATION)); long size = cursor.getLong(cursor.getColumnIndex(MediaStore.Audio.Media.SIZE)); // 打印音乐文件的信息 Log.d(TAG, "id: " + id); Log.d(TAG, "path: " + path); Log.d(TAG, "title: " + title); Log.d(TAG, "artist: " + artist); Log.d(TAG, "album: " + album); Log.d(TAG, "duration: " + duration); Log.d(TAG, "size: " + size); } cursor.close(); } } ``` 注意:需要在AndroidManifest.xml文件中添加读取外部存储的权限: ``` <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值