android音乐播放器怎么搜索SD卡上的音乐文件

2024-12-12 11:46:34
推荐回答(5个)
回答1:

  安卓系统在开机的时候就会自动检测SD卡的文件,并将音乐文件搜集生成一个数据库文件。我们只需访问数据库表中的信息就能得到所需的文件

// 获取所有歌曲
Cursor cursor = cr.query(
MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null,
null, MediaStore.Audio.Media.DEFAULT_SORT_ORDER);


得到cursor对象就能访问cursor里的媒体资源
我们只需在需要的地方调用

getAllFile(Environment.getExternalStorageDirectory().getAbsolutePath());




   


if (cursor.moveToFirst()) {   
do {
String title = cursor.getString(cursor
.getColumnIndex(MediaStore.Audio.Media.TITLE));
String singer = cursor.getString(cursor
.getColumnIndex(MediaStore.Audio.Media.ARTIST));
String album = cursor.getString(cursor
.getColumnIndex(MediaStore.Audio.Media.ALBUM));
long size = cursor.getLong(cursor
.getColumnIndex(MediaStore.Audio.Media.SIZE));
long time = cursor.getLong(cursor
.getColumnIndex(MediaStore.Audio.Media.DURATION));
String url = cursor.getString(cursor
.getColumnIndex(MediaStore.Audio.Media.DATA));
int _id = cursor.getInt(cursor
.getColumnIndex(MediaStore.Audio.Media._ID));
String name = cursor.getString(cursor
.getColumnIndex(MediaStore.Audio.Media.DISPLAY_NAME));
String sbr = name.substring(name.length() - 3,
name.length());
} while (cursor.moveToNext());




但是如果你的手机在开机后又下载了新的歌曲文件通过上面的方法是访问不到的,因为它还没有被加到数据表中,这样我们就要重写文件搜索的方法。







//获取该路径下的所有文件   
public static List getAllFile(String path){
List fileList = new ArrayList();
File folder = new File(path);
addFile(fileList, folder);
return fileList;
}

public static void addFile(List fileList,File f){
if(f.isDirectory()){
File[] files = f.listFiles();
for(File f1 : files){
addFile(fileList, f1);
}
}else{
String filename = f.getName();
if(filename.length()>4&&filename.substring(filename.length()-4).equalsIgnoreCase(".mp3")){
fileList.add(f.getAbsolutePath());
}
}
}



我们只需在需要的地方调用
getAllFile(Environment.getExternalStorageDirectory().getAbsolutePath());




  


回答2:

设置为扫描全部文件夹

回答3:

添加本地文件,打开音乐文件

回答4:

问代码还是问操作

回答5: