Record videos

本课讲解如何使用现有的摄像机应用程序捕捉视频。(很大部分和上一篇 Take photos相似)

您的应用程序有工作要做,而集成视频只是其中的一小部分。你希望拍视频时较低成本,也不要重新发明摄像机。令人高兴的是,大多数搭载android操作系统的设备已经有了一个可以记录视频的摄像头应用程序。在这节课中,你让它为你做这个。

请求相机功能


为了宣传你的应用程序依赖于有一个摄像头,在清单文件中放置一个标签:

如果您的应用程序使用,但不需要摄像头才能运行,请设置android:required="false"。通过这样做,谷歌Play将允许没有摄像头的设备下载应用程序。然后,您有责任通过调用hasSystemFeature(packagemanagemanager . feature_camera)检查相机在运行时的可用性。如果没有摄像头,你应该禁用你的摄像头功能。

用相机应用程序录制视频


将操作委托给其他应用程序的Android方式是调用一个意图来描述您想要做的事情。这个过程包括三个部分:意图本身,启动外部活动的调用,以及当焦点返回到活动时处理视频的代码。

这是一个调用意图捕获视频的函数。

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

请注意,startActivityForResult()方法受到调用resolveActivity()条件的保护,该条件返回能够处理意图的第一个活动组件。执行这个检查是很重要的,因为如果您使用任何应用程序都无法处理的意图调用startActivityForResult(),您的应用程序将崩溃。所以只要结果不是空的,使用意图是安全的。

查看视频


Android Camera应用程序返回交付给onActivityResult()的视频,作为指向存储中的视频位置的Uri。以下代码检索该视频并将其显示在VideoView中。

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent intent) {

    if (requestCode == REQUEST_VIDEO_CAPTURE && resultCode == RESULT_OK) {

        Uri videoUri = intent.getData();

        mVideoView.setVideoURI(videoUri);

    }

}

你可能感兴趣的:(Record videos)