2012-01-25 38 views
0

我正在使用Native Camera意圖捕獲視頻。在Nexus S中如果我捕捉視頻,那麼我是否取消或按下確定總是視頻文件正在默認的Medi URI路徑中存儲。但我有一個要求,當用戶點擊確定時刪除捕獲的視頻。我使用 下面的代碼來調用攝像頭如何刪除已取消的視頻

Intent videoIntent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE); 
startActivityForResult(videoIntent, CAPTURE_VIDEO); 

及以下ciode手柄取消按鈕單擊事件

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     try { 
      if (requestCode == CAPTURE_VIDEO) {if(resultCode == Activity.RESULT_CANCELED) 
//pointer comes here successfully. It tells that cancel button is clicked. But I am unabelt to know how to delete the currently cancelled video 
} 
} 
} 

回答

0

好了,它的一些醜陋的方式..

首先得到的真實路徑來自返回的URI的視頻,如

private String videoPath = ""; 

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if (requestCode == CAPTURE_VIDEO) 
    { 

     Uri vid = data.getData(); 
     videoPath = getRealPathFromURI(vid); 
    } 
} 

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

現在,您已經有了一個真正的vi路徑deo文件,然後使用文件操作,您可以刪除它。

File videoFile = new File(videoPath); 
videoFile.deleteOnExit(); 

我懷疑是否有可用來刪除它形成的Android數據庫的任何方法..

+0

請讓我知道如果你的工作.. – user370305

+0

不,它沒有工作。因爲當我們取消視頻時,那個URI就變成了空。所以我不能得到的路徑 –

+0

在第一個答案的第二個評論看看這個問題[Android ACTION_IMAGE_CAPTURE Intent](http://stackoverflow.com/questions/1910608/android-action-image-capture-intent)..我認爲它會幫助你。 – user370305