Registrazione video di Sceneform SceneViews

Questa guida per gli sviluppatori descrive i passaggi per consentire alla tua app di registrare scene SceneView in un file video locale. Utilizza la funzionalità disponibile nella classe VideoRecorder, disponibile nell'esempio VideoRecording sample a partire dalla versione 1.6.0 dell'SDK Sceneform per Android.

Crea ed esegui l'app di esempio

Per creare ed eseguire l'app VideoRecording Example:

  1. Assicurati di avere un progetto Sceneform in Android Studio e che il dispositivo Android sia connesso alla macchina di sviluppo tramite USB. Per i passaggi dettagliati, consulta la guida rapida.
  2. Importa l'esempio di registrazione video nel progetto.
  3. In Android Studio, fai clic su Esegui . Quindi, scegli il dispositivo come destinazione di deployment e fai clic su OK per avviare l'app di esempio sul dispositivo.
  4. Mentre sposti il dispositivo e metti gli oggetti 3D nello spazio intorno a te, fai clic sul pulsante Registra per iniziare la registrazione e sul pulsante Interrompi per interrompere la registrazione.

Il video registrato sarà accessibile tramite il rullino del dispositivo, in un album fotografico chiamato Sceneform o lungo il percorso:

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

Panoramica sull'attivazione di una app per il supporto della registrazione video di Sceneform

Per consentire alla tua app di registrare scene Sceneform è necessario:

  1. Richiesta di autorizzazioni app
  2. Inizializzazione del videoregistratore
  3. Avvio e interruzione della registrazione video

1. Richiedi autorizzazioni app

Per poter scrivere il file video nello spazio di archiviazione locale, devi richiedere l'autorizzazione WRITE_EXTERNAL_STORAGE aggiungendo la seguente riga a AndroidManifest.xml:

<application>
  …
</application>

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

2. Inizializzare il videoregistratore

L'esempio di registrazione video include una classe denominata VideoRecorder, che incapsula tutte le logiche delle impostazioni necessarie per utilizzare MediaRecorder per acquisire fotogrammi da un oggetto SceneView per creare un video.

Per utilizzare il videoregistratore, inizializza la classe VideoRecorder nella tua attività, ad esempio in 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. Creare una registrazione video

  1. Per iniziare a registrare, chiama il numero onToggleRecord():

       // Returns true if recording has started.
       boolean recording = videoRecorder.onToggleRecord();
    
  2. Per interrompere la registrazione, chiama onToggleRecord() una seconda volta:

       // Returns false if recording has stopped.
       boolean recording = videoRecorder.onToggleRecord();
    
  3. Per recuperare il percorso del file della registrazione video, utilizza getVideoPath():

       // Determine absolute file path of video recording.
       String videoPath = videoRecorder.getVideoPath().getAbsolutePath();
    
  4. Facoltativamente, copia il file registrato nella macchina di sviluppo utilizzando adb:

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

Per determinare la posizione corretta per le immagini e i video in modo che vengano visualizzati correttamente nel rullino, il corso VideoRecord utilizza Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).