通过camera来录制video首先在manifest文件中定义权限.
<manifest ... >
<uses-feature android:name="android.hardware.camera"
android:required="true" />
...
</manifest>
也可以在java code中用hasSystemFeature(PackageManager.FEATURE_CAMERA)来判断是否有carema.
可以通过下面的code来让其他Activity 来录制video,主要action是MediaStore.ACTION_VIDEO_CAPTURE
static final int REQUEST_VIDEO_CAPTURE = 1;
private void dispatchTakeVideoIntent() {
Intent takeVideoIntent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
if (takeVideoIntent.resolveActivity(getPackageManager()) != null) {
startActivityForResult(takeVideoIntent, REQUEST_VIDEO_CAPTURE);
}
}
然后重写onActivityResult()来得到结果.
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_VIDEO_CAPTURE && resultCode == RESULT_OK) {
Uri videoUri = intent.getData();
mVideoView.setVideoURI(videoUri);
}
}
可见是通过Intent的getData来拿到视频文件的uri的.
<manifest ... >
<uses-feature android:name="android.hardware.camera"
android:required="true" />
...
</manifest>
也可以在java code中用hasSystemFeature(PackageManager.FEATURE_CAMERA)来判断是否有carema.
可以通过下面的code来让其他Activity 来录制video,主要action是MediaStore.ACTION_VIDEO_CAPTURE
static final int REQUEST_VIDEO_CAPTURE = 1;
private void dispatchTakeVideoIntent() {
Intent takeVideoIntent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
if (takeVideoIntent.resolveActivity(getPackageManager()) != null) {
startActivityForResult(takeVideoIntent, REQUEST_VIDEO_CAPTURE);
}
}
然后重写onActivityResult()来得到结果.
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_VIDEO_CAPTURE && resultCode == RESULT_OK) {
Uri videoUri = intent.getData();
mVideoView.setVideoURI(videoUri);
}
}
可见是通过Intent的getData来拿到视频文件的uri的.