我在这个网站上看到过这样的问题,但找不到确切的解决方法。我正在创建存储在SD卡上的歌曲路径的列表视图。但是,当我提供媒体播放器的完整路径时,它会提供Prepare failed: status=0x1
。
我已将READ_EXTERNAL_STORAGE
许可包括在内。以下是我的代码。
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
Object o = adapterView.getItemAtPosition(i);
String uri = (String)o;
//uri = uri.substring();
// uri = Environment.getExternalStorageDirectory().getPath();
try{
MediaPlayer mp = new MediaPlayer();
mp.setDataSource(uri);
mp.setLooping(true);
mp.prepare();
mp.start();
}
catch (Exception e){
Toast.makeText(MainActivity.this,uri+" "+e.toString(),Toast.LENGTH_SHORT).show();
}
}
});
我在listView中设置了onItemClickListener。点击后,我正在获取字符串的歌曲路径并提供给媒体播放器。
我点击的示例路径是:
/storage/sdcard0/Download/MY_SONG_NAME.mp3