0

我想要处理我选择的实际音频文件。为了选择音频文件,我的意图如下:

Intent audioIntent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Audio.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(audioIntent , 0);

它允许我弹出一个窗口来从中选择音频文件,但我怎样才能获得我选择的文件?

在图像的情况下,我有:

bitmap = android.provider.MediaStore.Images.Media.getBitmap(getContentResolver(), intent.getData());

音频文件有类似的东西吗?

4

2 回答 2

5
Intent galleryIntent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Audio.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(galleryIntent, AUDIO_GALLERY_REQUEST_CODE);

if (requestCode == AUDIO_GALLERY_REQUEST_CODE) {
    if (resultCode == Activity.RESULT_OK) {
        try {
          String path = _getRealPathFromURI(context, intent.getData());
          File audio = new File(path);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

private String _getRealPathFromURI(Context context, Uri contentUri) {
    String[] proj = { MediaStore.Audio.Media.DATA };
    CursorLoader loader = new CursorLoader(context, contentUri, proj, null, null, null);
    Cursor cursor = loader.loadInBackground();
    int column_index = cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA);
    cursor.moveToFirst();
    return cursor.getString(column_index);
}
于 2013-10-16T17:41:30.047 回答
0

应该有一个类似的方法android.provider.MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,它有一个getContentUri(String)返回一个Uri对象的方法。看看是否有帮助。

链接到 Android 参考

于 2013-10-15T14:27:46.837 回答