做一个调用摄像头录像的demo,录像之后发送出去。期望的效果是录像结束,显示视频中的一个图片或者播放视频,然后确定发送将视频发出去,不需要有Controller那么高级的东西,只显示一下就行。但是我用VideoView播放说不能播放此视频,然后是黑屏,为什么呀?代码如下:
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_take_video);
initialize();
fileUri = Uri.fromFile(new
File(Environment.getExternalStorageDirectory().getAbsolutePath()+ "/"
+ getTime() + ".3pg"));
btnSend.setOnClickListener(this);
btnCancle.setOnClickListener(this);
startVideoCapture();
}
private void startVideoCapture() {
// TODO Auto-generated method stub
Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
// intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri);
intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);
startActivityForResult(intent, 1);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
// super.onActivityResult(arg0, arg1, arg2);
if (resultCode == RESULT_OK) {
Toast.makeText(this, "Image saved to :\n" + fileUri.toString(), Toast.LENGTH_LONG).show();
v_video.setVideoURI(fileUri);
v_video.start();
} else if (resultCode == RESULT_CANCELED) {
} else {
}
}
我在文件存放的目录下可以找到视频文件,并且可以正常播放,视频文件没有问题。LogCat:
07-14 15:39:01.641: D/MediaPlayer(25119): Message: MEDIA_ERROR(100), ext1=MEDIA_ERROR_UNKNOWN(1), ext2=0x80000000
07-14 15:39:01.642: E/MediaPlayer(25119): error (1, -2147483648)
07-14 15:39:01.642: D/MediaPlayer(25119): [virtual void android::MediaPlayer::notify(int, int, int, const android::Parcel *)] : [1107] callback app listenerNotNull=1, send=1
07-14 15:39:01.642: D/MediaPlayer(25119): [virtual void android::MediaPlayer::notify(int, int, int, const android::Parcel *)] : [1111] callback application
07-14 15:39:01.775: E/MediaPlayer(25119): Error (1,-2147483648)
07-14 15:39:01.776: D/VideoView(25119): Error: 1,-2147483648