就像音乐应用程序一样,我想访问歌曲的名称(而不是文件的名称)或艺术家或专辑。例如,我想用手机上所有歌曲的名称填充一个列表视图。

最佳答案

有两种方法,一种是从音乐文件本身读取元标记,另一种是使用MediaStore内容提供程序。 MediaStore本质上是一个公共数据库,您可以在电话上查询所有与媒体相关的信息。

使用MediaStore非常简单,可以在文档here中找到。

这是我的一个应用程序中的一个简单示例:

String[] proj = { MediaStore.Audio.Media._ID,
MediaStore.Audio.Media.DATA,
MediaStore.Audio.Media.DISPLAY_NAME,
MediaStore.Audio.Artists.ARTIST };

tempCursor = managedQuery(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
                            proj, null, null, null);

tempCursor.moveToFirst(); //reset the cursor
int col_index=-1;
int numSongs=tempCursor.getCount();
int currentNum=0;
do{
  col_index = tempCursor.getColumnIndexOrThrow(MediaStore.Audio.Artists.ARTIST);
  artist = tempCursor.getString(col_index);
  //do something with artist name here
  //we can also move into different columns to fetch the other values
  }
  currentNum++;
}while(tempCursor.moveToNext());

关于android - 如何从手机上存储的音乐中访问名称,艺术家,专辑名称?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3426349/

10-13 03:25