2013-10-15 73 views
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
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); 
} 
+0

注:'intent'在上面的代碼是意圖數據作爲'公共無效onActivityResult(INT requestCode,INT resultCode爲,意圖意圖)' –

+0

酷..它幫助我:d :D(Y)謝謝你!!!!!! –

0

對於android.provider.MediaStore.Audio.Media.EXTERNAL_CONTENT_URI應該有類似的方法,它有一個getContentUri(String)返回一個Uri對象。看看是否有幫助。

Link to Android reference