Enregistrement vidéo de scènes Sceneform

Ce guide du développeur vous explique comment enregistrer votre application SceneView dans un fichier vidéo local. Elle utilise les fonctionnalités disponibles dans la classe VideoRecorder, qui fait partie de l'exemple VideoRecording Example à partir de la version 1.6.0 du SDK Sceneform pour Android.

Créer et exécuter l'application exemple

Pour créer et exécuter l'application VideoRecording Example:

  1. Assurez-vous que vous avez un projet Sceneform dans Android Studio et que votre appareil Android est connecté à la machine de développement via USB. Pour en savoir plus, consultez le guide de démarrage rapide.
  2. Importez l'exemple VideoRecording dans votre projet.
  3. Dans Android Studio, cliquez sur Run (Exécuter) . Choisissez ensuite votre appareil comme cible de déploiement, puis cliquez sur OK pour lancer l'exemple d'application.
  4. Lorsque vous déplacez votre appareil et placez des objets 3D dans l'espace, cliquez sur le bouton "Enregistrer" pour commencer l'enregistrement, et sur le bouton "Arrêter" pour l'arrêter.

La vidéo enregistrée sera accessible via la pellicule de l'appareil, dans un album photo nommé Sceneform ou sur le chemin:

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

Présentation de l'activation d'une application compatible avec l'enregistrement vidéo en mode Sceneform

Pour que votre application puisse enregistrer des scènes Sceneform, vous devez:

  1. Demander des autorisations d'applications
  2. Initialisation de l'enregistreur vidéo
  3. Démarrer et arrêter l'enregistrement vidéo

1. Exiger des autorisations d'applications

Pour pouvoir écrire le fichier vidéo sur le stockage local, votre application doit demander l'autorisation WRITE_EXTERNAL_STORAGE en ajoutant la ligne suivante à votre AndroidManifest.xml :

<application>
  …
</application>

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

2. Initialiser l'enregistreur vidéo

L'exemple VideoRecording inclut une classe nommée VideoRecorder, qui encapsule toutes les logiques de paramètres nécessaires pour utiliser MediaRecorder afin de capturer des images d'un objet SceneView pour créer une vidéo.

Pour utiliser l'enregistreur vidéo, initialisez la classe VideoRecorder dans votre activité, par exemple dans 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. Créer un enregistrement vidéo

  1. Pour commencer l'enregistrement, appelez onToggleRecord():

       // Returns true if recording has started.
       boolean recording = videoRecorder.onToggleRecord();
    
  2. Pour arrêter l'enregistrement, appelez onToggleRecord() une seconde fois:

       // Returns false if recording has stopped.
       boolean recording = videoRecorder.onToggleRecord();
    
  3. Pour récupérer le chemin d'accès à l'enregistrement vidéo, utilisez getVideoPath() :

       // Determine absolute file path of video recording.
       String videoPath = videoRecorder.getVideoPath().getAbsolutePath();
    
  4. Vous pouvez également copier le fichier enregistré sur votre ordinateur de développement à l'aide d'adb:

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

Pour déterminer l'emplacement correct des images et des vidéos afin qu'elles s'affichent correctement sur la pellicule, la classe VideoRecord utilise Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).