다음을 통해 공유


비디오 미러링 방법(HTML)

[ 이 문서는 Windows 런타임 앱을 작성하는 Windows 8.x 및 Windows Phone 8.x 개발자를 대상으로 합니다. Windows 10용으로 개발하는 경우에는 최신 설명서를 참조하세요.]

미리 보기 이미지 미러링은 비디오 회의 및 화상 채팅 응용 프로그램에 유용합니다. 일반적으로 사용자는 자신의 반사된 이미지를 보고자 합니다. 거울에 비친 자신의 모습에 익숙해 있기 때문에 "올바른"(미러되지 않은) 보기는 이상해 보일 수 있습니다.

참고   아래 지침에 설명된 대로 SetPreviewMirroringGetPreviewMirroring을 사용하여 미리 보기 이미지를 가로로 대칭 이동할 수 있습니다. 그러나 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();
}

관련 항목

미디어 캡처 샘플

MediaCapture