2012-01-25 2 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

좋아, 그 어떤 추한 방법을 취소에게 전화를 다음 코드를 사용하고 당신이 VI의 실제 경로가

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

등의 반환 URI의 비디오, 그런 다음 파일 작업을 사용하여 삭제할 수 있습니다. 이 안드로이드 데이터베이스를 형성 삭제할 수있는 방법을 사용할 수있는 경우

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

나는

+0

당신을 위해 그 일이 .. – user370305

+0

아니, 일을 일부러 알려 주시기 바랍니다 .. 의심한다. 왜냐하면 우리가 비디오를 취소 할 때 URI가 null이되기 때문입니다. 그래서 나는 길을 얻을 수 없다. –

+0

첫 번째 대답의 두 번째 주석에서 [Android ACTION_IMAGE_CAPTURE Intent] (http://stackoverflow.com/questions/1910608/android-action-image-capture-intent)를 참고한다. 나는 생각한다. 너를 도울 것이다. – user370305

관련 문제