В этом руководстве для разработчиков приведены шаги, позволяющие вашему приложению записывать Sceneform SceneView
в локальный видеофайл. Он использует функциональные возможности, доступные в классе VideoRecorder
, который доступен как часть образца VideoRecording Sample , начиная с версии 1.6.0 пакета SDK Sceneform для Android.
Создайте и запустите образец приложения
Чтобы создать и запустить пример приложения VideoRecording :
- Убедитесь, что у вас есть проект Sceneform в Android Studio и что ваше Android-устройство подключено к машине разработки через USB. Подробные инструкции см. в кратком руководстве.
- Импортируйте образец видеозаписи в свой проект.
- В Android Studio нажмите «Выполнить». . Затем выберите свое устройство в качестве цели развертывания и нажмите кнопку ОК , чтобы запустить образец приложения на своем устройстве.
- Когда вы перемещаете свое устройство и размещаете 3D-объекты в пространстве вокруг себя, нажмите кнопку «Запись», чтобы начать запись, и кнопку «Стоп», чтобы остановить запись.
Записанное видео будет доступно через фотопленку на устройстве, в фотоальбоме под названием Sceneform
или по пути:
/sdcard/Pictures/Sceneform/Sample<hex characters>.mp4
Обзор включения приложения для поддержки записи видео Sceneform
Чтобы ваше приложение могло записывать сцены Sceneform, необходимо:
- Запрос разрешений приложения
- Инициализация видеорегистратора
- Запуск и остановка записи видео
1. Запросите разрешения приложения
Чтобы иметь возможность записать видеофайл в локальное хранилище, ваше приложение должно запросить разрешение WRITE_EXTERNAL_STORAGE
, добавив следующую строку в свой AndroidManifest.xml
:
<application>
…
</application>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
2. Инициализируйте видеорегистратор
Образец VideoRecording включает класс с именем VideoRecorder
, который инкапсулирует всю логику настроек, необходимую для использования MediaRecorder для захвата кадров из объекта SceneView
для создания видео.
Чтобы использовать видеомагнитофон, инициализируйте класс VideoRecorder в своей активности, например, в onCreate()
.
// 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)
.