2011-02-02 2 views
4

Я пытаюсь создать приложение, которое записывает видео и сохраняет его на SD-карте, а когда оно запускается снова, оно перезаписывает предыдущее видео.Android Intent MediaStore.ACTION_VIDEO_CAPTURE с EXTRA_OUTPUT сбоями при воспроизведении, retake

Проблема заключается в том, что, когда я укажу Intent extra EXTRA_OUTPUT, камера записывает видео в местоположение, но сбой при повторном воспроизведении и воспроизведении кликов.

код я использую следующим образом:

_path = Environment.getExternalStorageDirectory() + "/examplevideo.3gp"; 

File file = new File(_path); 
Uri outputFileUri = Uri.fromFile(file); 

Intent intent = new Intent(android.provider.MediaStore.ACTION_VIDEO_CAPTURE); 
intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);    
startActivityForResult(intent, 0); 

Когда я перестану записи, LogCat говорит

VERBOSE/videocamera(6602): Setting current video filename: null 

что странно и, кажется, проблема.

Когда я нажимаю играть, я получаю сообщение об ошибке, но приложение продолжает работать (записанное видео оленья кожа играть)

ERROR/videocamera(6602): Couldn't view video file:///mnt/sdcard/examplevideo.3gp 
ERROR/videocamera(6602): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=file:///mnt/sdcard/examplevideo.3gp } 
ERROR/videocamera(6602):  at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1408) 
ERROR/videocamera(6602):  at android.app.Instrumentation.execStartActivity(Instrumentation.java:1378) 
ERROR/videocamera(6602):  at android.app.Activity.startActivityForResult(Activity.java:2817) 
ERROR/videocamera(6602):  at android.app.Activity.startActivity(Activity.java:2923) 
.. 

Когда я нажимаю пересдать, сбои приложения полностью с ошибкой:

ERROR/AndroidRuntime(6602): FATAL EXCEPTION: main 
ERROR/AndroidRuntime(6602): java.lang.IllegalArgumentException: Unknown URL file:///mnt/sdcard/examplevideo.3gp 
ERROR/AndroidRuntime(6602):  at android.content.ContentResolver.delete(ContentResolver.java:671) 
ERROR/AndroidRuntime(6602):  at com.android.camera.VideoCamera.deleteCurrentVideo(VideoCamera.java:1010) 
ERROR/AndroidRuntime(6602):  at com.android.camera.VideoCamera.discardCurrentVideoAndInitRecorder(VideoCamera.java:476) 
ERROR/AndroidRuntime(6602):  at com.android.camera.VideoCamera.onClick(VideoCamera.java:420) 
ERROR/AndroidRuntime(6602):  at android.view.View.performClick(View.java:2408) 
... 

Странно, что это видео сохраняется в данном месте, и я могу воспроизвести его с моей SD-карты, просто так, что активность камеры не распознает его.

Некоторая помощь или идеи были бы высоко оценены!

ответ

0

кажется, что вы пытаетесь запустить видеоплеер на основе сообщения об ошибке (в отличие от воспроизведения видео в VideoView виджет

Попробуйте указать, что ваша цель данных типа видео:.

Intent i = new Intent(Intent.ACTION_VIEW); 
i.setDataAndType(Uri.parse(yourVideoURI), "video/*"); 
startActivity(i); 

Обратите внимание, что yourVideoURI выше будет то, что вы получите обратно от data.getData() в onActivityResult()

Смежные вопросы