캡처된 비디오를 회전하는 방법(HTML)
[ 이 문서는 Windows 런타임 앱을 작성하는 Windows 8.x 및 Windows Phone 8.x 개발자를 대상으로 합니다. Windows 10용으로 개발하는 경우에는 최신 설명서를 참조하세요.]
MediaCapture 클래스의 SetPreviewRotation 및 SetRecordRotation 메서드를 사용하면 카메라에서 캡처한 비디오를 회전할 수 있습니다.
이 예제에 사용되는 전체 코드는 이 방법의 끝 부분에 나열되어 있습니다.
사전 요구 사항
이 항목에서는 사용자가 JavaScript용 Windows 라이브러리 템플릿을 사용하는 JavaScript를 사용하여 기본 Windows 스토어 앱을 만들 수 있다고 가정합니다. 첫 번째 앱을 만드는 자세한 내용은 JavaScript를 사용하여 첫 번째 Windows 스토어 앱 만들기를 참조하세요.
지침
단계 1: MediaCapture 개체 만들기
MediaCapture 클래스에는 캡처된 비디오 관리를 위한 메서드와 속성이 포함되어 있습니다. 카메라에서 비디오를 캡처 및 회전하려면 InitializeAsync, StartPreviewAsync 및 SetPreviewRotation을 사용해야 합니다. 녹화된 비디오의 회전을 설정하려면 SetRecordRotation을 사용합니다.
이 예에서는 새 MediaCapture 개체를 인스턴스화하고 InitializeAsync를 호출하여 MediaCapture 개체를 기본 설정으로 초기화합니다. 특정 설정을 지정하려면 MediaCaptureInitializationSettings 개체를 InitializeAsync로 전달할 수 있습니다.
oMediaCapture = new Windows.Media.Capture.MediaCapture();
oMediaCapture.initializeAsync().then(function (result) {
단계 2: 녹화를 위해 비디오 회전 설정
녹화를 위해 비디오 이미지의 회전을 설정하려면 MediaCapture 개체의 SetRecordRotation 메서드에 Windows.Media.Capture.VideoRotation 열거형 값을 전달합니다. VideoRotation 열거형은 비디오를 회전할 양을 지정합니다. 값에는 0, 90, 180 및 270도가 있습니다.
oMediaCapture.setRecordRotation(Windows.Media.Capture.VideoRotation.clockwise90Degrees);
기록에 사용할 회전 값을 가져오려면 GetRecordRotation 메서드를 호출합니다. 이 메서드는 VideoRotation 열거형 값을 반환합니다.
var videoRotation = oMediaCapture.getRecordRotation();
마찬가지로 비디오 미리 보기에 사용되는 회전은 GetPreviewRotation 및 SetPreviewRotation 메서드를 호출하여 설정합니다. 이러한 메서드도 VideoRotation 열거형 값을 사용하여 비디오를 회전시킬 양을 지정합니다.
단계 3: 비디오 녹화
새로운 비디오 회전 값을 설정한 후 파일에 기록하는 방법 항목에 설명된 단계에 따라 회전된 비디오를 기록할 수 있습니다. 일반적으로 MediaCapture 개체를 초기화하기 전에 비디오 회전을 설정합니다.
var oMediaCapture;
function setRotation() {
oMediaCapture = new Windows.Media.Capture.MediaCapture();
oMediaCapture.initializeAsync().then(function (result) {
// Set the video rotation value.
oMediaCapture.setRecordRotation(Windows.Media.Capture.VideoRotation.clockwise90Degrees);
}, errorHandler);
//Check rotation value;
var videoRotation = oMediaCapture.getRecordRotation();
// Ready to start the capture session
}