录制视频

注意:此页面引用了Camera类,该类已弃用。我们建议使用CameraX或针对特定用例使用Camera2。CameraX 和 Camera2 均支持 Android 5.0(API 级别 21)及更高版本。

本课程介绍如何使用现有的相机应用捕获视频。

您的应用程序需要完成一项任务,集成视频只是其中的一小部分。您希望以最简单的方式拍摄视频,而不是重新发明摄像机。幸运的是,大多数搭载 Android 系统的设备都自带可以录制视频的相机应用程序。在本课中,您将让它为您完成这项工作。

参考以下相关资源

请求相机功能

要声明您的应用程序依赖于相机,请在清单文件中添加一个 <uses-feature> 标签

<manifest ... >
    <uses-feature android:name="android.hardware.camera"
                  android:required="true" />
    ...
</manifest>

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

查看视频

Android 相机应用程序将视频以 Intent 的形式返回给 onActivityResult(),并使用指向存储中视频位置的 Uri。以下代码检索此视频并在 VideoView 中显示它。

Kotlin

override fun onActivityResult(requestCode: Int, resultCode: Int, intent: Intent) {
    if (requestCode == REQUEST_VIDEO_CAPTURE && resultCode == RESULT_OK) {
        val videoUri: Uri = intent.data
        videoView.setVideoURI(videoUri)
    }
}

Java

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
    if (requestCode == REQUEST_VIDEO_CAPTURE && resultCode == RESULT_OK) {
        Uri videoUri = intent.getData();
        videoView.setVideoURI(videoUri);
    }
}