如何从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,我想要做同样的事情。

  • Android AudioRecord与MediaRecorder录制audio
  • 如何使用低延迟的Androidaudio
  • 如何在audio均衡器中添加立体声,高音选项?
  • 如何将声音添加到通知?
  • 播放默认的Androidbutton声音,点击onTouch()方法
  • 仅播放通知默认声音(Android)
  • Android - 从byte 播放mp3
  • 了解Android中的mixer_paths.xml
  • 只要用这两条线

     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);