我正在尝试制作一个媒体播放器应用程序,但我无法从我的移动设备访问音乐文件。我有用户权限也可以访问mp3文件。我尝试从文件名为Download.But的SD卡中访问媒体文件它不是working.Is。有什么方法可以从安卓设备访问所有mp3文件吗?这是我的代码
public class MainActivity extends ListActivity {
private static final String SD_PATH =new String("/Download/");
private List<String> songs =new ArrayList<String>();
private MediaPlayer mp =new MediaPlayer();
class Mp3Filter implements FilenameFilter{
@Override
public boolean accept(File dir, String filename) {
return (filename.endsWith(".mp3"));
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
updatePlaylist();
Button button =(Button)findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mp.stop();
}
});
}
protected void onListItemClick(ListView list,View view,int position,long id){
try{
mp.reset();
mp.setDataSource(SD_PATH + songs.get(position));
mp.prepare();
mp.start();
} catch (IOException e) {
Log.v(getString(R.string.app_name),e.getMessage());
}
}
private void updatePlaylist() {
File home =new File(SD_PATH);
if (home.listFiles(new Mp3Filter()).length > 0) {
for(
File file:home.listFiles(new Mp3Filter())
) {
songs.add(file.getName());
}
ArrayAdapter<String>songlist =new ArrayAdapter<String>(this,R.layout.text,songs);
setListAdapter(songlist);
}
}发布于 2016-03-26 05:54:20
您没有指向正确的SD卡目录。你的SD_PATH应该看起来像-
String SD_PATH = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).toString();这是设备SD卡上下载文件夹的外部存储路径。您可以根据自己的需要将特定的文件名附加到此路径。
https://stackoverflow.com/questions/36228483
复制相似问题