Зеркальное отображение видео (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();
}