本开发者指南将引导您完成相关步骤,以便让您的应用将 Sceneform SceneView
录制到本地视频文件中。它使用 VideoRecorder
类中提供的功能,该类是从 1.6.0 版 Sceneform SDK for Android 开始的 VideoRecording 示例示例中提供的。
构建和运行示例应用
如需构建并运行 VideoRecording 示例应用,请执行以下操作:
- 确保您在 Android Studio 中有一个 Sceneform 项目,并且您的 Android 设备已通过 USB 连接到开发机器。如需了解详细步骤,请参阅快速入门。
- 将 VideoRecording 示例导入您的项目。
- 在 Android Studio 中,点击 Run 图标 。然后,选择您的设备作为部署目标,并点击确定以在设备上启动示例应用。
- 当您移动设备并将 3D 对象放入周围空间时,请点击“录制”按钮以开始录制,点击“停止”按钮停止录制。
您可以通过设备上的相机胶卷、名为 Sceneform
的影集或路径中访问录制的视频:
/sdcard/Pictures/Sceneform/Sample<hex characters>.mp4
简要介绍如何让应用支持 Sceneform 视频录制
如需让应用录制 Sceneform 场景,需要:
- 请求应用权限
- 初始化录像机
- 开始和停止录制视频
1. 请求应用权限
为了能够将视频文件写入本地存储空间,您的应用必须向 AndroidManifest.xml
添加以下行来请求 WRITE_EXTERNAL_STORAGE
权限:
<application>
…
</application>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
2. 初始化录像机
VideoRecording 示例包含一个名为 VideoRecorder
的类,该类封装了使用 MediaRecorder 从 SceneView
对象捕获视频以创建视频所需的所有设置逻辑。
如需使用视频录制器,请在 Activity(例如 onCreate()
)中初始化 VideoRecorder 类。
// Create a new video recorder instance.
videoRecorder = new VideoRecorder();
// Specify the AR scene view to be recorded.
videoRecorder.setSceneView(arFragment.getArSceneView());
// Set video quality and recording orientation to match that of the device.
int orientation = getResources().getConfiguration().orientation;
videoRecorder.setVideoQuality(CamcorderProfile.QUALITY_2160P, orientation);
3. 创建视频录制
如需开始录制,请调用
onToggleRecord()
:// Returns true if recording has started. boolean recording = videoRecorder.onToggleRecord();
如需停止录制,请再次调用
onToggleRecord()
:// Returns false if recording has stopped. boolean recording = videoRecorder.onToggleRecord();
如需检索视频录制内容的文件路径,请使用
getVideoPath()
:// Determine absolute file path of video recording. String videoPath = videoRecorder.getVideoPath().getAbsolutePath();
(可选)使用 adb 将录制的文件复制到开发机器:
adb pull /sdcard/…/path/to/recorded/video.mp4 .
为了确定图片和视频的正确位置,以使其正确显示在相机胶卷上,VideoRecord
类利用 Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)
。