W tym przewodniku dla deweloperów opisujemy, jak włączyć w swojej aplikacji nagrywanie sceny SceneView
do lokalnego pliku wideo. Korzysta z funkcji dostępnych w klasie VideoRecorder
, która jest dostępna w ramach próbki VideoRecording Sample w wersji 1.6.0 pakietu SDK Sceneform na Androida.
Tworzenie i uruchamianie przykładowej aplikacji
Aby utworzyć i uruchomić aplikację VideoRecording Sample:
- Upewnij się, że masz projekt Sceneform w Android Studio i że Twoje urządzenie z Androidem było połączone z urządzeniem programistycznym przez USB. Szczegółowe instrukcje znajdziesz w krótkim wprowadzeniu.
- Zaimportuj próbkę nagrań wideo do projektu.
- W Android Studio kliknij Uruchom . Następnie wybierz urządzenie jako miejsce docelowe wdrożenia i kliknij OK, aby uruchomić przykładową aplikację na swoim urządzeniu.
- Podczas przenoszenia urządzenia i umieszczania obiektów 3D w otoczeniu kliknij przycisk nagrywania, aby rozpocząć nagrywanie, a potem przycisk Zatrzymaj, aby zatrzymać nagrywanie.
Nagrany film będzie dostępny za pomocą rolki z aparatu na urządzeniu, w albumie ze zdjęciami Sceneform
lub na ścieżce:
/sdcard/Pictures/Sceneform/Sample<hex characters>.mp4
Omówienie włączania obsługi aplikacji do nagrywania filmów Sceneform
Aby aplikacja mogła nagrywać sceny, potrzebne są:
- Prośba o uprawnienia aplikacji
- Inicjuję nagrywanie
- Rozpoczynanie i zatrzymywanie nagrywania wideo
1. Poproś o uprawnienia aplikacji
Aby zapisać plik wideo w pamięci lokalnej, musisz poprosić o uprawnienie WRITE_EXTERNAL_STORAGE
, dodając ten wiersz do AndroidManifest.xml
:
<application>
…
</application>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
2. Inicjowanie nagrywarki wideo
Przykładowy film wideo zawiera klasę o nazwie VideoRecorder
, która obejmuje logikę ustawień potrzebną do użycia klatki z obiektu MediaRecorder w celu utworzenia filmu z użyciem obiektu SceneView
.
Aby skorzystać z rejestratora wideo, zainicjuj w swojej aktywności klasę VideoRecorder, na przykład 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. Nagraj film
Aby rozpocząć nagrywanie, zadzwoń do
onToggleRecord()
:// Returns true if recording has started. boolean recording = videoRecorder.onToggleRecord();
Aby zatrzymać nagrywanie, drugi raz zadzwoń do:
onToggleRecord()
// Returns false if recording has stopped. boolean recording = videoRecorder.onToggleRecord();
Aby pobrać ścieżkę pliku z nagraniem wideo, użyj polecenia
getVideoPath()
:// Determine absolute file path of video recording. String videoPath = videoRecorder.getVideoPath().getAbsolutePath();
Opcjonalnie skopiuj nagrany plik na komputer używany do programowania, używając narzędzia adb:
adb pull /sdcard/…/path/to/recorded/video.mp4 .
Aby określić prawidłową lokalizację obrazów i filmów, które wyświetlają się prawidłowo w rolce z aparatu, klasa VideoRecord
używa wartości Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)
.