비디오 미러링 방법(HTML)
[ 이 문서는 Windows 런타임 앱을 작성하는 Windows 8.x 및 Windows Phone 8.x 개발자를 대상으로 합니다. Windows 10용으로 개발하는 경우에는 최신 설명서를 참조하세요.]
미리 보기 이미지 미러링은 비디오 회의 및 화상 채팅 응용 프로그램에 유용합니다. 일반적으로 사용자는 자신의 반사된 이미지를 보고자 합니다. 거울에 비친 자신의 모습에 익숙해 있기 때문에 "올바른"(미러되지 않은) 보기는 이상해 보일 수 있습니다.
참고 아래 지침에 설명된 대로 SetPreviewMirroring 및 GetPreviewMirroring을 사용하여 미리 보기 이미지를 가로로 대칭 이동할 수 있습니다. 그러나 JavaScript로 작성된 Windows 런타임 앱의 경우 미리 보기 동영상을 미러링하는 가장 효율적이고 기본적인 방법은 video 개체의 msHorizontalMirror 속성을 사용하는 것입니다.
지침
단계 1: MediaCapture 개체 만들기
MediaCapture 개체에는 미리 보기 이미지 미러링에 필요한 메서드, 속성 및 비동기 작업(비동기 초기화, 시작, 중지 등)이 포함되어 있습니다.
oMediaCapture = new Windows.Media.Capture.MediaCapture();
oMediaCapture.initializeAsync().then(function (result) {
단계 2: 미리 보기 미러링 설정
MediaCapture 클래스는 미리 보기 이미지 가로 방향 관리를 위한 메서드를 제공합니다. GetPreviewMirroring은 미리 보기 이미지가 미러인지 여부를 나타냅니다. SetPreviewMirroring은 비디오 미리 보기 스트림의 가로 미러링을 설정 또는 해제합니다.
이 예에서는 가로 미러링의 사용 여부를 쿼리합니다. 가로 미러링이 해제된 경우, 사용하도록 설정됩니다.
if( !oMediaCapture.getPreviewMirroring() )
oMediaCapture.setPreviewMirroring(true);
단계 3: 미리 보기 시작
비디오 미리 보기를 중지하려면 startPreviewAsync 메서드를 호출합니다.
// Start Previewing
await _mediaCapture.StartPreviewAsync();
(App.Current as App).IsPreviewing = true;
// Start Previewing
var startPreviewOperation = oMediaCapture.startPreviewAsync();
단계 4: 미리 보기 중지
미리 보기를 중지하려면 StopPreviewAsync 메서드를 호출합니다.
// Set the handler for the StopPreviewOperation.
var stopPreviewOperation = oMediaCapture.stopPreviewAsync();
단계 5: 전체 예제
이 예에서는 가로 미러링을 사용하여 비디오를 미리 보는 방법을 보여 줍니다. 이 예제의 진입점은 StartPreview 함수입니다. 이 함수는 가로 미러링을 사용하도록 설정하는 함수를 호출하고 startPreviewOperation에 대한 처리기를 만들어 미리 보기를 시작합니다.
var oMediaCapture;
var profile;
function turnMirroringOn()
{
if( !oMediaCapture.getPreviewMirroring() )
oMediaCapture.setPreviewMirroring(true);
}
function OnStartPreviewComplete(startPreviewOperation)
{
// This method does not return a value.
//
startPreviewOperation.GetResults();
// Set the handler for the StopPreviewOperation.
var stopPreviewOperation = oMediaCapture.stopPreviewAsync();
stopPreviewOperation.Completed = OnStopPreviewComplete;
stopPreviewOperation.Start();
startPreviewOperation.Close();
}
function OnStopPreviewComplete(stopPreviewOperation)
{
// This method does not return a value.
//
stopPreviewOperation.GetResults();
stopPreviewOperation.Close();
}
function startPreview()
{
oMediaCapture = new Windows.Media.Capture.MediaCapture();
oMediaCapture.initializeAsync().then(function (result) {
createProfile();
}, errorHandler);
// Enable horizontal mirroring.
//
turnMirroringOn();
// Start Previewing
var startPreviewOperation = oMediaCapture.startPreviewAsync();
startPreviewOperation.Completed = OnStartPreviewComplete;
startPreviewOperation.Start();
}