如何在Android中从设备中拾取音频文件的路径或uri?

时间:2012-05-05 10:41:48

标签: android audio

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

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

它运作正常。

但是现在我希望用户能够从设备中选择一个音频文件,这样当他或她按下播放按钮时,应该播放所选择的声音。

我没有得到像图像一样的任何意图动作。

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

在上面的代码中,用户只需转到图库。单击任何图像后,他或她将获得可用于在应用程序中显示图像的图像URI。我想做同样的事情,除了选择音频文件。

1 个答案:

答案 0 :(得分:16)

只需使用这两行,

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