扫描SD卡中的.mp3文件需要协助
问题描述:
我一直在尝试制作音乐播放器应用程序,而且我刚刚开始使用android,有谁能告诉我如何在我的SD卡中使用音乐文件,给我的字符串变量MEDIA_PATH中的SD卡的位置“\ sdcard \”,但之后呢?系统如何访问音乐文件,更简单地以.mp3格式结尾的文件,我不知道使用哪个函数。非常感谢您的建议,谢谢。扫描SD卡中的.mp3文件需要协助
答
使用FileFilter
扫描来自SD卡的.mp3文件。例如:
//Check media mounted or not
if(Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState()))
{
File sdCardDir=new File("/sdcard");
File sdCardDir=Environment.getExternalStorageDirectory();
ArrayList<File>files=getFiles(file);
private ArrayList<File> getFiles(Filefile){
File files[]=sdCardDir.listFiles(filter);
for(File f:files){
if(f.isDirectory()&&f.canRead()){
getFiles(f);
}else if(f.isFile()){
videlList.add(f);
}
}
//USE FileFilter
FileFilter filter=new FileFilter(){
@Override
public boolean accept(File f){
returnf.isDirectory()||f.getName().matches("^.*?//.(mp3)$");
}
}
+0
谢谢你我的建议,它工作得很好。 – user47 2012-07-23 07:50:06
答
您可以通过以下代码获取来自有根sdcard的所有mp3文件。
File home = Environment.getExternalStorageDirectory();
if (home.listFiles(new Mp3Filter()).length > 0) {
for (File file : home.listFiles(new Mp3Filter())) {
songs.add(file.getAbsolutePath());
}
ArrayAdapter<String> songList = new ArrayAdapter<String>
(this,R.layout.song_item,songs);
setListAdapter(songList);
}
class Mp3Filter implements FilenameFilter
{
public boolean accept(File dir, String name)
{
return (name.endsWith(".mp3"));
}
}
Here songs is a ArrayList which stores the actual path of the song.
你应该做互联网上搜索发布问题之前..there可像[这](许多演示http://androidsamples.blogspot.in/2009/06/displaying-list-of-music-files -stored.html)和[这](http://www.helloandroid.com/tutorials/musicdroid-audio-player-part-i) – MKJParekh 2012-03-17 06:38:18