如何在 Android 应用中录制视频?
简介
视频录制是目前许多 Android 应用中最常见的功能。此功能主要用于支付应用中,这类应用需要验证用户身份以进行身份验证并进行 KYC(了解你的客户)。本文将介绍如何在 Android 应用中录制视频。
我们将构建一个简单的 Android 应用,其中显示一个按钮和一个视频视图。当用户点击按钮时,我们将录制视频;视频录制完成后,我们将在视频视图中播放该视频。
实现
我们将创建一个简单的应用,其中显示一个列表视图。在这个列表视图中,我们将显示不同的编程语言,并为列表视图中的项目添加点击监听器。点击列表视图中的项目时,我们将向用户显示一条包含项目名称的 Toast 消息。我们将按照分步指南在 Android 中实现两个数字的加法。
步骤 1:在 Android Studio 中创建新项目
如下图所示,导航到 Android Studio。在下方屏幕中,点击"新建项目"以创建一个新的 Android Studio 项目。
点击"新建项目"后,您将看到以下屏幕。
在此屏幕中,我们只需选择"空活动",然后点击"下一步"。点击"下一步"后,您将看到以下屏幕。
在此屏幕中,我们只需指定项目名称。然后包名称将自动生成。
注意:请确保选择"语言"为 Java。
指定所有详细信息后,点击"完成"以创建一个新的 Android Studio 项目。
项目创建完成后,我们将看到两个打开的文件,即 activity_main.xml 和 MainActivity.java 文件。
步骤 2:使用 activity_main.xml
导航到 activity_main.xml。如果此文件不可见,请打开此文件。在左侧窗格中,导航至 app>res>layout>activity_main.xml 并打开此文件。打开此文件后,添加以下代码。代码中添加了注释,以便您详细了解。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<!-- creating a video view on below line -->
<VideoView
android:id="@+id/videoView"
android:layout_centerInParent="true"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@id/idBtnRecordVideo"
android:layout_margin="5dp" />
<!-- creating a button to record a video on below line -->
<Button
android:id="@+id/idBtnRecordVideo"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerInParent="true"
android:layout_margin="10dp"
android:text="Record Video"
android:textAllCaps="false" />
</RelativeLayout>
说明:在上面的代码中,我们创建了一个相对布局的根布局。在这个布局中,我们创建了一个视频视图,用于在应用中显示视频。创建此视频视图后,我们将创建一个按钮,用于录制视频。然后,我们为相对布局添加一个结束标签。
步骤 3:添加录制视频的权限
导航到 AndroidManifest.xml 文件,并在 manifest 标签中添加以下权限以录制视频。
<!-- 在下方添加权限 --> <uses-feature android:name="android.hardware.camera" android:required="true"/>
步骤 4:使用 MainActivity.java 文件
导航到 MainActivity.java。如果此文件不可见,请打开此文件。在左侧窗格中,导航至 app>res>layout>MainActivity.java 以打开此文件。打开此文件后,将以下代码添加到其中。代码中添加了注释,以便您详细了解。
package com.example.java_test_application;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.provider.MediaStore;
import android.view.View;
import android.widget.Button;
import android.widget.VideoView;
public class MainActivity extends AppCompatActivity {
// 在下面一行创建变量。
private Button recordVideoBtn;
private VideoView videoView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 初始化下一行的变量。
recordVideoBtn = findViewById(R.id.idBtnRecordVideo);
videoView = findViewById(R.id.videoView);
// 为录制按钮添加点击监听器。
recordVideoBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 下面一行打开一个 Intent 来录制视频。
Intent i = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
// 下面一行启动一个 Activity 来获取结果。
startActivityForResult(i, 1);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK && requestCode == 1) {
// 在下行设置我们的视频视图的视频 URI。
videoView.setVideoURI(data.getData());
// 在下面一行开始视频观看
videoView.start();
}
}
}
说明:在上面的代码中,我们首先为视频视图和按钮创建变量。现在我们来看一下 onCreate 方法。这是每个 Android 应用程序的默认方法。此方法在应用程序视图创建时调用。在此方法中,我们设置内容视图,即名为 activity_main.xml 的布局文件,以便从该文件设置 UI。在 onCreate 方法中,我们使用在 activity_main.xml 文件中指定的 ID 初始化视频视图和按钮变量。之后,我们为录制视频按钮添加一个点击监听器。在点击监听器中,我们打开一个新的 Intent,并将其操作设置为视频采集,然后启动该 Activity。
现在我们创建一个 onActivity 的结果方法,在该方法中,我们检查请求代码是否与我们传递的相同,并且结果代码正确,然后我们为视频视图设置视频 URI,并启动视频视图以显示我们采集到的视频。
添加上述代码后,现在只需点击顶部栏中的绿色图标即可在移动设备上运行我们的应用。
注意 - 确保您已连接到真实设备或模拟器。
输出

结论
在上面的教程中,我们学习了如何录制来自我们的 android 应用程序的视频并在我们的 android 应用程序视频视图中显示录制的视频。

