如何从Android设备取出audio文件的path或uri?

我正在创build一个简单的应用程序,我想播放声音。 按下button在应用程序上播放它将播放声音。 为了播放我正在使用的声音:

MediaPlayer mediaPlayer; mediaPlayer = MediaPlayer.create(this, R.raw.test_cbr); mediaPlayer.setOnCompletionListener(new OnCompletionListener() { @Override public void onCompletion(MediaPlayer mp) { // TODO Auto-generated method stub Toast.makeText(getApplicationContext(), "Completed", Toast.LENGTH_LONG).show(); } }); mediaPlayer.start(); 

它工作正常。

但是现在我希望用户能够从设备中select一个audio文件,以便当他或她按下播放button时,应该播放所select的声音。

我没有得到像图像可以采取任何意图的行动。

 Intent photo_picker_intent = new Intent(Intent.ACTION_PICK); photo_picker_intent.setType("image/*"); startActivityForResult(photo_picker_intent, PHOTOS_FROM_GALLERY); 

在上面的代码中,用户将简单地去画廊。 点击任何图像,他或她将得到一个图像URI,可用于在应用程序中显示图像。 除了audio文件select,我想要做同样的事情。

Related of "如何从Android设备取出audio文件的path或uri?"

只要用这两条线

 Intent intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Audio.Media.EXTERNAL_CONTENT_URI); startActivityForResult(Intent.createChooser(intent, "Gallery"), reqCode); 

要么,

  Intent intent = new Intent(); intent.setType("audio/*"); intent.setAction(Intent.ACTION_GET_CONTENT); startActivityForResult(Intent.createChooser(intent,"Select Audio "), reqCode);