我想使用MediaPlayer类在SD卡上播放wav文件。 Android开发者的网站说我们可以像uri一样播放本地媒体。代码段是
Uri myUri = ....; // initialize Uri here
MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mediaPlayer.setDataSource(getApplicationContext(), myUri);
mediaPlayer.prepare();
mediaPlayer.start();
如何将本地文件设置为Uri?
---编辑---
感谢大家的答案
我最终使用Uri myuri = Uri.parse(filepath)
,但我也确认所有答案都有效。
答案 0 :(得分:3)
你可以试试这个:
File file = new File("myfile.wav");
Uri uri = Uri.fromFile(file);
答案 1 :(得分:2)
这适合我。
private MediaPlayer mPlayer;
mPlayer = new MediaPlayer();
mPlayer.setWakeMode(getApplicationContext(), PowerManager.PARTIAL_WAKE_LOCK);
mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
try {
String path = "/sdcard/music/sample music.mp3";
mPlayer.setDataSource(path);
mPlayer.prepare();
mPlayer.start();
} catch (Exception e) {
e.printStackTrace();
}
答案 2 :(得分:1)
SD卡目录可能是系统特定的,因此您需要先查询该目录,然后从中创建文件和Uri。
String sdcardDirectory = Environment.getExternalStorageDirectory().getAbsolutePath();
File sourdFile = new File(sdCardDirectory + "/path/to/soudfile/" + "sound.wav");
Uri uri = Uri.fromFile();
或者,您可以使用fromParts()
Uri uri = Uri.fromParts("file", "/" + sdCardDirectory + "/path/to/soudfile/" + "sound.wav", null);