2011-02-02 47 views
4

我试图制作一个记录视频并将其保存到SD卡的应用程序,当它再次运行时,它会覆盖以前的视频。Android Intent具有EXTRA_OUTPUT的MediaStore.ACTION_VIDEO_CAPTURE在播放时崩溃,重拍

问题是,当我指定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()

会得到什么
相关问题