0

我正在使用本机相机意图来捕捉视频。在 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
}
}
}
4

1 回答 1

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

现在您有了视频文件的真实路径,然后使用文件操作可以将其删除。

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

我怀疑是否有任何方法可以从android数据库中删除它。

于 2012-01-25T05:20:11.243 回答