如何在我的SD卡上指定一个wav文件作为Uri

时间:2013-08-16 06:38:41

标签: android

我想使用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),但我也确认所有答案都有效。

3 个答案:

答案 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 = Uri.fromParts("file", "/" + sdCardDirectory + "/path/to/soudfile/" + "sound.wav", null);