이 개발자 가이드에서는 앱에서 장면 양식 SceneView
을 로컬 동영상 파일에 녹화할 수 있도록 하는 단계를 안내합니다. 이 SDK는 VideoRecorder
클래스에서 사용할 수 있는 기능을 사용합니다. 이 기능은 Android용 Sceneform SDK 버전 1.6.0부터 VideoRecording 샘플 샘플의 일부로 제공됩니다.
샘플 앱 빌드 및 실행
VideoRecording Sample 앱을 빌드하고 실행하려면 다음 안내를 따르세요.
- Android 스튜디오에 Sceneform 프로젝트가 있고 Android 기기가 USB를 통해 개발 머신에 연결되어 있는지 확인합니다. 자세한 단계는 빠른 시작을 참고하세요.
- VideoRecording 샘플을 프로젝트로 가져옵니다.
- Android 스튜디오에서 Run 을 클릭합니다. 그런 다음 기기를 배포 대상으로 선택하고 OK를 클릭하여 기기에서 샘플 앱을 실행합니다.
- 기기를 이동하고 주변 공간에 3D 객체를 배치할 때 Record 버튼을 클릭하여 녹화를 시작하고 Stop 버튼을 클릭하여 녹화를 중지합니다.
녹화된 동영상은 기기의 카메라 롤을 통해 Sceneform
라는 사진 앨범 또는 경로를 통해 액세스할 수 있습니다.
/sdcard/Pictures/Sceneform/Sample<hex characters>.mp4
앱이 장면 형식의 동영상 녹화를 지원하도록 사용 설정하는 개요
앱이 장면 형식의 장면을 녹화할 수 있게 하려면 다음이 필요합니다.
- 앱 권한 요청
- 동영상 녹화기 초기화
- 동영상 녹화 시작 및 중지
1. 앱 권한 요청
동영상 파일을 로컬 저장소에 쓸 수 있으려면 앱에서 AndroidManifest.xml
에 다음 줄을 추가하여 WRITE_EXTERNAL_STORAGE
권한을 요청해야 합니다.
<application>
…
</application>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
2. 동영상 녹화기 초기화
VideoRecording 샘플에는 VideoRecorder
라는 클래스가 포함되어 있습니다. 이 클래스는 MediaRecorder를 사용하여 SceneView
객체의 프레임을 캡처하여 동영상을 만드는 데 필요한 모든 설정 로직을 캡슐화합니다.
동영상 레코더를 사용하려면 활동에서(예: onCreate()
) VideoRecorder 클래스를 초기화합니다.
// 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. 동영상 녹화 파일 만들기
녹화를 시작하려면
onToggleRecord()
를 호출합니다.// Returns true if recording has started. boolean recording = videoRecorder.onToggleRecord();
녹화를 중지하려면
onToggleRecord()
를 다시 호출합니다.// Returns false if recording has stopped. boolean recording = videoRecorder.onToggleRecord();
동영상 녹화의 파일 경로를 가져오려면
getVideoPath()
를 사용합니다.// Determine absolute file path of video recording. String videoPath = videoRecorder.getVideoPath().getAbsolutePath();
(선택사항) adb를 사용하여 기록된 파일을 개발 머신에 복사합니다.
adb pull /sdcard/…/path/to/recorded/video.mp4 .
카메라 롤에 올바르게 표시되도록 이미지 및 동영상의 올바른 위치를 결정하기 위해 VideoRecord
클래스는 Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)
를 사용합니다.