2012-03-17 79 views
0

我一直在嘗試製作音樂播放器應用程序,而且我剛剛開始使用android,有誰能告訴我如何在我的SD卡中使用音樂文件,給我的字符串變量MEDIA_PATH中的SD卡的位置「\ sdcard \」,但之後呢?系統如何訪問音樂文件,更簡單地以.mp3格式結尾的文件,我不知道使用哪個函數。非常感謝您的建議,謝謝。掃描SD卡中的.mp3文件需要協助

+1

你應該做互聯網上搜索發佈問題之前..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

回答

1

使用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

3

您可以通過以下代碼獲取來自有根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. 
+0

不錯的答案.... – MKJParekh 2012-03-17 06:38:40

+0

如果你有時間請到這裏http://chat.stackoverflow.com/rooms/1531/casual-chat – MKJParekh 2012-03-17 06:40:10

+0

@MKJParekh:我會的確如此 – user47 2012-07-23 07:49:32