录制视频

注意:本页介绍的是已废弃的 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(作为 Uri 传递给 onActivityResult(),指向视频在存储设备中所处的位置)中的视频。下面的代码会检索此视频并将其显示在一个 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);
    }
}