Bu geliştirici kılavuzu, uygulamanızın SceneView
Sahnesini yerel bir video dosyasına kaydetmesini sağlamak için gerekli adımlarda size yol gösterir. Android'de Sceneform SDK'nın 1.6.0 sürümüyle başlayan VideoRecording Sample örneğinin bir parçası olarak VideoRecorder
sınıfında kullanılabilen işlevleri kullanır.
Örnek uygulamayı oluşturup çalıştırın
VideoRecording Sample uygulamasını oluşturmak ve çalıştırmak için:
- Android Studio'da Sceneform projeniz olduğundan ve Android cihazınızın USB üzerinden geliştirme makinesine bağlı olduğundan emin olun. Ayrıntılı adımlar için hızlı başlangıç sayfasına bakın.
- VideoRecording Örneği'ni projenize aktarın.
- Android Studio'da
Çalıştır'ı tıklayın. Ardından, dağıtım hedefi olarak cihazınızı seçin ve cihazınızda örnek uygulamayı başlatmak için Tamam'ı tıklayın.
- Cihazınızı hareket ettirip çevrenizdeki alana 3D nesneler yerleştirirken, kaydı başlatmak için Kaydet düğmesini, kaydı durdurmak için Durdur düğmesini tıklayın.
Kaydedilen videoya cihazdaki film rulosu üzerinden, Sceneform
adlı bir fotoğraf albümünden veya yoldan erişilebilir:
/sdcard/Pictures/Sceneform/Sample<hex characters>.mp4
Bir uygulamanın Sceneform video kaydını desteklemesine genel bakış
Uygulamanızın Düzen sahnelerini kaydetmesini sağlamak için gerekenler:
- Uygulama izinleri isteme
- Video kaydedici başlatılıyor
- Video kaydını başlatma ve durdurma
1. Uygulama izni isteme
Video dosyasını yerel depolama alanına yazabilmek için uygulamanız, aşağıdaki satırı AndroidManifest.xml
bölümüne ekleyerek WRITE_EXTERNAL_STORAGE
iznini istemelidir:
<application>
…
</application>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
2. Video kaydediciyi ilk kullanıma hazırlayın
VideoRecording Sample, VideoRecorder
adında bir sınıf içerir. Bu sınıf, video oluşturmak için SceneView
nesnesinden çerçeveler yakalamak üzere MediaRecorder'ı kullanmak için gereken tüm ayar mantığını kapsar.
Video kaydediciyi kullanmak için etkinliğinizde (ör. onCreate()
) VideoRecorder sınıfını başlatın.
// 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. Video kaydı oluşturma
Kaydı başlatmak için
onToggleRecord()
numaralı telefonu arayın:// Returns true if recording has started. boolean recording = videoRecorder.onToggleRecord();
Kaydı durdurmak için
onToggleRecord()
numarasını ikinci kez arayın:// Returns false if recording has stopped. boolean recording = videoRecorder.onToggleRecord();
Video kaydının dosya yolunu almak için
getVideoPath()
kodunu kullanın:// Determine absolute file path of video recording. String videoPath = videoRecorder.getVideoPath().getAbsolutePath();
İsteğe bağlı olarak, kaydedilen dosyayı adb kullanarak geliştirme makinenize kopyalayın:
adb pull /sdcard/…/path/to/recorded/video.mp4 .
Resim ve video için doğru konum belirlenirken film rulosunda doğru gösterilmeleri için VideoRecord
sınıfı kullanılarak Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)
kullanılır.