2012-06-14 23 views
0

我希望我的应用程序从图库中选择视频。它使用以下代码来获取路径。无法获得视频的正确路径

Intent i = new Intent(Intent.ACTION_GET_CONTENT); 
i.setType("video/*"); 
startActivityForResult(i,2); 

然后

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
// TODO Auto-generated method stub 

    if(resultCode==RESULT_OK){ 

     str = data.getData().getPath(); 
    //this.go(); 
     this.ko(); 
    } 
} 

str存储的路径。对于测试运行,其值为/external/video/media/10,但它应该是类似于/sdcard/DCIM/a.mp4以使用MediaMetaDataRetriever加载视频。怎么做 ?

回答

0

在你的情况,(我明白你的问题)

if(resultCode==RESULT_OK){ 
     str = getRealPathFromURI(data.getData()); 
    //this.go(); 
     this.ko(); 
    } 

使用,这个功能得到开放的真实路径..

功能:

public String getRealPathFromURI(Uri contentUri) 
    { 
     try 
     { 
      String[] proj = {MediaStore.Video.Media.DATA}; 
      Cursor cursor = managedQuery(contentUri, proj, null, null, null); 
      int column_index = cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DATA); 
      cursor.moveToFirst(); 
      return cursor.getString(column_index); 
     } 
     catch (Exception e) 
     { 
      return contentUri.getPath(); 
     } 
    }