Видеозапись Sceneform SceneViews

В этом руководстве для разработчиков приведены шаги, позволяющие вашему приложению записывать Sceneform SceneView в локальный видеофайл. Он использует функциональные возможности, доступные в классе VideoRecorder , который доступен как часть образца VideoRecording Sample , начиная с версии 1.6.0 пакета SDK Sceneform для Android.

Создайте и запустите образец приложения

Чтобы создать и запустить пример приложения VideoRecording :

  1. Убедитесь, что у вас есть проект Sceneform в Android Studio и что ваше Android-устройство подключено к машине разработки через USB. Подробные инструкции см. в кратком руководстве.
  2. Импортируйте образец видеозаписи в свой проект.
  3. В Android Studio нажмите «Выполнить». . Затем выберите свое устройство в качестве цели развертывания и нажмите кнопку ОК , чтобы запустить образец приложения на своем устройстве.
  4. Когда вы перемещаете свое устройство и размещаете 3D-объекты в пространстве вокруг себя, нажмите кнопку «Запись», чтобы начать запись, и кнопку «Стоп», чтобы остановить запись.

Записанное видео будет доступно через фотопленку на устройстве, в фотоальбоме под названием Sceneform или по пути:

/sdcard/Pictures/Sceneform/Sample<hex characters>.mp4

Обзор включения приложения для поддержки записи видео Sceneform

Чтобы ваше приложение могло записывать сцены Sceneform, необходимо:

  1. Запрос разрешений приложения
  2. Инициализация видеорегистратора
  3. Запуск и остановка записи видео

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. Создайте видеозапись

  1. Чтобы начать запись, вызовите onToggleRecord() :

       // Returns true if recording has started.
       boolean recording = videoRecorder.onToggleRecord();
    
  2. Чтобы остановить запись, вызовите onToggleRecord() второй раз:

       // Returns false if recording has stopped.
       boolean recording = videoRecorder.onToggleRecord();
    
  3. Чтобы получить путь к файлу видеозаписи, используйте getVideoPath() :

       // Determine absolute file path of video recording.
       String videoPath = videoRecorder.getVideoPath().getAbsolutePath();
    
  4. При желании скопируйте записанный файл на свой компьютер для разработки с помощью adb:

adb pull /sdcard/…/path/to/recorded/video.mp4 .

Чтобы определить правильное расположение изображений и видео, чтобы они правильно отображались в фотопленке, класс VideoRecord использует Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES) .