Videoaufnahme von Sceneform SceneViews

In diesem Entwicklerleitfaden wird beschrieben, wie du in deiner App Szenen-SceneViews in einer lokalen Videodatei aufnimmst. Sie verwendet Funktionen der Klasse VideoRecorder, die als Teil des Beispiels für Videoaufzeichnungen ab Version 1.6.0 des Sceneform SDK for Android zur Verfügung steht.

Beispielanwendung erstellen und ausführen

So erstellen Sie die App VideoRecording Sample:

  1. Achten Sie darauf, dass Sie ein Sceneform-Projekt in Android Studio haben und dass Ihr Android-Gerät über USB mit der Entwicklungsmaschine verbunden ist. Eine ausführliche Anleitung finden Sie in der Kurzanleitung.
  2. Importieren Sie das VideoRecording-Beispiel in Ihr Projekt.
  3. Klicken Sie in Android Studio auf Ausführen . Wählen Sie dann Ihr Gerät als Bereitstellungsziel aus und klicken Sie auf OK, um die Beispielanwendung auf Ihrem Gerät zu starten.
  4. Wenn du dein Gerät bewegst und 3D-Objekte in der Umgebung aufstellst, klicke auf die Schaltfläche „Aufnehmen“, um die Aufnahme zu starten, und auf die Schaltfläche „Beenden“, um die Aufnahme zu beenden.

Auf das aufgezeichnete Video kann über die Kamera auf dem Gerät, in einem Fotoalbum mit dem Namen Sceneform oder im Pfad zugegriffen werden:

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

Übersicht: Aktivieren einer Sceneform-Videoaufzeichnung in einer App

Damit deine App Sceneform-Szenen aufnehmen kann, ist Folgendes erforderlich:

  1. App-Berechtigungen anfordern
  2. Videorekorder wird initialisiert
  3. Videoaufzeichnung starten und beenden

1. App-Berechtigungen anfordern

Damit die Videodatei in den lokalen Speicher geschrieben werden kann, musst du die Berechtigung WRITE_EXTERNAL_STORAGE anfordern. Füge dazu die folgende Zeile zu AndroidManifest.xml hinzu:

<application>
  …
</application>

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

2. Videorekorder initialisieren

Das VideoRecording-Beispiel enthält eine Klasse namens VideoRecorder, die die gesamte Einstellungslogik enthält, die erforderlich ist, um mit MediaRecorder Frames aus einem SceneView-Objekt zum Erstellen eines Videos zu erfassen.

Wenn Sie den Videorekorder verwenden möchten, initialisieren Sie die Klasse VideoRecorder in Ihrer Aktivität, z. B. 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. Videoaufzeichnung erstellen

  1. Rufen Sie onToggleRecord() auf, um die Aufzeichnung zu starten:

       // Returns true if recording has started.
       boolean recording = videoRecorder.onToggleRecord();
    
  2. Wenn Sie die Aufzeichnung beenden möchten, rufen Sie onToggleRecord() noch einmal auf:

       // Returns false if recording has stopped.
       boolean recording = videoRecorder.onToggleRecord();
    
  3. Verwenden Sie getVideoPath(), um den Dateipfad der Videoaufzeichnung abzurufen:

       // Determine absolute file path of video recording.
       String videoPath = videoRecorder.getVideoPath().getAbsolutePath();
    
  4. Optional können Sie die aufgezeichnete Datei mithilfe von ADB auf Ihren Entwicklungscomputer kopieren:

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

Die Klasse VideoRecord verwendet Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), um den richtigen Standort für Bilder und Videos zu ermitteln und sie so beim Drehen der Kamera korrekt anzuzeigen.