Поделиться через


Зеркальное отображение видео (HTML)

[ Эта статья адресована разработчикам приложений среды выполнения Windows для Windows 8.x и Windows Phone 8.x. В случае разработки приложений для Windows 10 см. раздел последняя документация]

Зеркалирование предпросмотра удобно при видеоконференциях и видеоразговорах. Обычно пользователь желает видеть свое зеркальное отражение. Оригинальное, неотраженное изображение может быть непривычным, поскольку мы привыкли представлять себя такими, какими видим в зеркале.

Примечание   Вы можете использовать SetPreviewMirroring и GetPreviewMirroring, как описано ниже, чтобы отражать изображение предпросмотра по горизонтали. Однако для приложения среды выполнения Windows на JavaScript предпочтительный и наиболее эффективный способ зеркалирования предпросмотра видео — использовать свойство msHorizontalMirror объекта video.

Инструкции

Этап 1: Создание объекта MediaCapture

Объект MediaCapture содержит методы, свойства и асинхронные операции (InitializeAsync, Start, Stop и т. д.), необходимые для зеркального отражения предпросмотра.

    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