Come eseguire il mirroring di un video (HTML)
[ Questo articolo è rivolto agli sviluppatori per Windows 8.x e Windows Phone 8.x che realizzano app di Windows Runtime. Gli sviluppatori che usano Windows 10 possono vedere Documentazione aggiornata ]
La rotazione dell'immagine di anteprima è utile per le applicazioni di videoconferenza e videochiamata. L'utente solitamente desidera vedere la sua immagina riflessa. La vista corretta, cioè non riflessa, potrebbe infatti apparire strana perché siamo abituati a guardarci allo specchio.
Nota Per ruotare orizzontalmente l'immagine di anteprima, puoi usare SetPreviewMirroring e GetPreviewMirroring, come illustrato nelle istruzioni seguenti. Ma per un'app di Windows Runtime scritta in JavaScript il modo migliore per ruotare l'anteprima video prevede invece l'uso della proprietà msHorizontalMirror dell'oggetto video.
Istruzioni
Passaggio 1: Creare l'oggetto MediaCapture
L'oggetto MediaCapture contiene i metodi, le proprietà e le operazioni asincrone (inizializzazione dello stato asincrono, avvio, arresto, ecc.) necessari per ruotare l'immagine di anteprima.
oMediaCapture = new Windows.Media.Capture.MediaCapture();
oMediaCapture.initializeAsync().then(function (result) {
Passaggio 2: Impostare la rotazione dell'anteprima
La classe MediaCapture offre metodi per la gestione dell'orientamento orizzontale dell'immagine di anteprima. GetPreviewMirroring indica se l'immagine di anteprima viene ruotata orizzontalmente o meno. SetPreviewMirroring abilita o disabilita la rotazione orizzontale del flusso di anteprima video.
In questo esempio viene verificato se la rotazione orizzontale è abilitata. Se la rotazione orizzontale è disabilitata viene abilitata.
if( !oMediaCapture.getPreviewMirroring() )
oMediaCapture.setPreviewMirroring(true);
Passaggio 3: Avviare l'anteprima
Per avviare l'anteprima video, chiamare il metodo startPreviewAsync.
// Start Previewing
await _mediaCapture.StartPreviewAsync();
(App.Current as App).IsPreviewing = true;
// Start Previewing
var startPreviewOperation = oMediaCapture.startPreviewAsync();
Passaggio 4: Interrompere l'anteprima
Per interrompere l'anteprima video, chiamare il metodo StopPreviewAsync.
// Set the handler for the StopPreviewOperation.
var stopPreviewOperation = oMediaCapture.stopPreviewAsync();
Passaggio 5: Esempio completo
Nell'esempio seguente viene illustrato come visualizzare l'anteprima di un video applicando la rotazione orizzontale. Il punto di ingresso in questo esempio è la funzione StartPreview. Questa funzione chiama un'altra funzione per abilitare la rotazione orizzontale e crea il gestore per l'oggetto startPreviewOperation per avviare l'anteprima.
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();
}