Linguaggio: HTML | XAML

Guida introduttiva: Video e audio (XAML)

Applies to Windows and Windows Phone

Riprodurre contenuti multimediali audio e video mediante MediaElement nell'app di Windows Runtime in C++, C# o Visual Basic.

Roadmap: che relazione c'è tra questo argomento e gli altri? Vedi:

Introduzione

Per riprodurre contenuti multimediali audio e video nella tua app di Windows Runtime in C++, C# o Visual Basic, usa la classe MediaElement. La classe MediaElement offre numerosi metodi e proprietà per controllare la riproduzione di audio e video. Esamineremo le nozioni di base per creare e usare MediaElement.

In Windows 8.1 sono stati introdotti controlli del trasporto predefiniti per l'oggetto MediaElement. Essi consentono di gestire riproduzione, interruzione, pausa, regolazione del volume, disattivazione dell'audio, ricerca e spostamento e selezione delle tracce audio. Per abilitare questi controlli, imposta AreTransportControlsEnabled su true. Per disabilitarli, imposta AreTransportControlsEnabled su false.

In Windows 8.1 è stata introdotta una proprietà IsFullWindow per abilitare e disabilitare il rendering a finestra intera e assicurarti che le ottimizzazioni del sistema siano abilitate quando passi al rendering a finestra intera. In Windows 8.1 e versioni successive usa sempre la proprietà IsFullWindow per abilitare e disabilitare il rendering a finestra intera.

Per le versioni precedenti a Windows 8.1, è lo sviluppatore a dover creare l'interfaccia utente personalizzata per controllare la riproduzione di audio e video. Per avviare un file multimediale nell'app, puoi ad esempio creare un elemento Button e chiamare Play nel gestore dell'evento Button . Sebbene in Windows 8.1 siano stati introdotti i controlli del trasporto predefiniti, possono comunque verificarsi situazioni in cui è necessario creare un'interfaccia utente personalizzata per supportare altre funzionalità oppure per sostituire i controlli predefiniti con altri personalizzati. Per un ulteriore approfondimento sulla creazione di controlli del trasporto personalizzati, vedi Come creare controlli del trasporto multimediale personalizzati.

Nozioni di base su MediaElement

Per aggiungere contenuti multimediali alla tua app, puoi creare un oggetto MediaElement in XAML e impostare la proprietà Source su un URI (Uniform Resource Identifier) che punti a un file audio o video.

Ecco un esempio di codice che crea un oggetto MediaElement e ne imposta la proprietà Source sull'URI di un file video. La riproduzione di MediaElement viene avviata al caricamento della pagina. Per disattivare l'avvio immediato dell'elemento multimediale, puoi impostare la proprietà AutoPlay su false.


<MediaElement x:Name="mediaSimple" 
              Source="Videos/video1.mp4" 
              Width="400" AutoPlay="False"/>


Ecco un esempio di codice che crea un oggetto MediaElement con i controlli del trasporto predefiniti abilitati e la proprietà AutoPlay impostata su false.


<MediaElement x:Name="mediaPlayer" 
              Source="Videos/video1.mp4" 
              Width="400" 
              AutoPlay="False"
              AreTransportControlsEnabled="True" />


Uso delle proprietà dell'oggetto MediaElement

L'oggetto MediaElement include diverse proprietà specifiche degli elementi multimediali. Ecco alcune delle proprietà più comuni. Per un elenco completo di proprietà, metodi ed eventi, vedi la pagina di riferimento su MediaElement.

ProprietàDescrizione
AutoPlay Specifica se avviare automaticamente la riproduzione dell'oggetto MediaElement. Il valore predefinito è true.
IsMuted Specifica se disattivare l'audio. Il valore predefinito è false.
IsFullWindow

Introdotta in Windows 8.1.

Abilita o disabilita il rendering a finestra intera. In Windows 8.1 e versioni successive è sempre consigliabile usare la proprietà IsFullWindow per abilitare e disabilitare il rendering a finestra intera. In questo modo puoi assicurarti che siano abilitate le ottimizzazioni di sistema.

AreTransportControlsEnabled

Introdotta in Windows 8.1.

Abilita o disabilita i controlli del trasporto predefiniti.

Volume Imposta il volume dell'audio su un valore compreso nell'intervallo tra 0 e 1, dove 1 corrisponde al livello più elevato.
Balance Specifica il rapporto del volume tra gli altoparlanti stereo in un intervallo compreso tra -1 e 1. Il valore predefinito è 0.
CurrentState Specifica lo stato corrente dell'oggetto MediaElement.
IsAudioOnly Specifica se l'origine multimediale corrente è di solo audio.
IsLooping Specifica se il file multimediale corrente è impostato per riavviarsi dall'inizio una volta completata la riproduzione.
NaturalDuration Specifica la durata del file multimediale attualmente aperto.
Position Specifica la posizione di riproduzione corrente. Si può passare a un'altra posizione nella sequenza temporale del file multimediale impostando Position su un punto specifico.
PosterSource Specifica l'origine dell'immagine usata come segnaposto durante il caricamento del file multimediale.
Source Specifica un URI di origine del file audio o video.
AudioStreamCount Specifica il numero di flussi audio esistenti nel file multimediale corrente.
AudioStreamIndex Specifica il flusso audio riprodotto insieme al componente video.
Stretch

Introdotta in Windows 8.1.

La proprietà MediaElement.Stretch definisce la modalità di riempimento dello spazio dell'elemento contenitore dell'oggetto MediaElement. Gli stati di Stretch sono analoghi alle impostazioni delle dimensioni dell'immagine su molti televisori. Puoi associare questa proprietà a un pulsante e consentire all'utente di scegliere l'impostazione preferita.

  • None visualizza la risoluzione nativa del contenuto alle dimensioni originali.
  • Uniform riempie tutto lo spazio disponibile mantenendo le proporzioni e il contenuto dell'immagine. Questa impostazione può determinare la visualizzazione di barre orizzontali o verticali ai bordi del video. Il risultato è analogo alle modalità widescreen.
  • UniformToFill riempie tutto lo spazio disponibile mantenendo le proporzioni. In questo caso, l'immagine potrebbe apparire ritagliata. Il risultato è analogo alle modalità schermo intero.
  • Fill riempie tutto lo spazio disponibile senza mantenere le proporzioni. L'immagine non viene ritagliata ma potrebbe apparire deformata. Il risultato è analogo alle modalità di adattamento delle immagini.
Valori di enumerazione di Stretch

 

Controllo della riproduzione di elementi multimediali

In Windows 8.1 sono stati introdotti controlli del trasporto predefiniti per controllare la riproduzione dei contenuti multimediali. Per abilitare i controlli del trasporto predefiniti, imposta AreTransportControlsEnabled su true. Si tratta del modo più semplice per controllare la riproduzione di MediaElement. Se invece vuoi aggiungere la tua interfaccia utente per controllare la riproduzione, le sezioni che seguono mostrano come associare manualmente i metodi di riproduzione all'oggetto MediaElement. In questo modo puoi aggiungere supporto per funzionalità non previste dai controlli predefiniti oppure sostituire questi ultimi con controlli personalizzati.

L'oggetto MediaElement offre diversi metodi specifici dei contenuti multimediali per controllarne la riproduzione. Ecco alcuni dei metodi più comuni. Per un elenco completo, vedi la pagina di riferimento su MediaElement.

MetodoDescrizione
Play Riproduce il file multimediale dalla posizione corrente.
Pause Mette in pausa il file multimediale alla posizione corrente.
Stop Interrompe il file multimediale e reimposta la proprietà Position su 0.
SetSource Imposta la proprietà Source usando il flusso specificato.

 

L'oggetto MediaElement include diversi eventi specifici degli elementi multimediali. Ecco alcuni degli eventi più comuni. Per un elenco completo, vedi la pagina di riferimento su MediaElement.

MetodoDescrizione
MediaOpened Si verifica dopo che il flusso multimediale è stato convalidato e aperto e le intestazioni del file sono state lette.
MediaEnded Si verifica al termine della riproduzione di audio o video da parte di MediaElement.
MediaFailed Si verifica se viene rilevato un errore con la proprietà Source del file multimediale.
CurrentStateChange Si verifica se il valore della proprietà CurrentState cambia.

 

Ecco un esempio di codice che crea un oggetto MediaElement e alcuni oggetti Button per controllare la riproduzione del file multimediale. L'oggetto MediaElement resta in attesa degli eventi MediaOpened, MediaEnded e MediaFailed. Crea inoltre l'interfaccia utente per gestire Play, Stop e Pause.


<StackPanel HorizontalAlignment="Center">
    <MediaElement x:Name="media" 
                  Source="Videos/Video1.mp4" 
                  Width="300"
                  AreTransportControlsEnabled="False"
                  MediaFailed="Media_MediaFailed"
                  MediaOpened="Media_MediaOpened"
                  MediaEnded="Media_MediaEnded" />
    
    <StackPanel Orientation="Horizontal"
                HorizontalAlignment="Center">
        
        <Button Content="Play" Click="Play_Click"/>
        <Button Content="Pause" Click="Pause_Click"/>
        <Button Content="Stop" Click="Stop_Click" />
        
    </StackPanel>
</StackPanel>



void Play_Click(object sender, RoutedEventArgs e)
{
    media.Play();
}

void Pause_Click(object sender, RoutedEventArgs e)
{
    if (media.CanPause)
    {
        media.Pause();
    }
}

void Stop_Click(object sender, RoutedEventArgs e)
{
    media.Stop();
}

void Media_MediaFailed(object sender, ExceptionRoutedEventArgs e)
{
    // Handle failed media event
}

void Media_MediaOpened(object sender, RoutedEventArgs e)
{
    // Handle open media event
}

void Media_MediaEnded(object sender, RoutedEventArgs e)
{
    // Handle media ended event
}


Nota  Oltre ad arrestare, sospendere o avviare la riproduzione di elementi multimediali, puoi cercare una posizione specifica impostando la proprietà Position di un oggetto MediaElement.

Impostazione dell'origine multimediale

È possibile impostare l'origine dell'oggetto MediaElement con la proprietà Source o con il metodo SetSource.

Il tipo della proprietà Source è Uri. Per cambiare il file multimediale di origine, imposta Source su un Uri contenente il percorso del file.

Il metodo SetSource accetta un IRandomAccessStream che rappresenta l'origine del file multimediale e il tipo MIME del relativo contenuto. Il controllo FileOpenPicker rappresenta un modo semplice per ottenere un oggetto flusso per un file nel file system locale o in Microsoft OneDrive. Per altre info sull'uso del controlloFileOpenPicker, vedi Come aprire file multimediali mediante il controllo FileOpenPicker.

Per aprire file su Internet oppure file incorporati nell'app, imposta la proprietà Source sull'Uri del file multimediale. È consigliabile inserire il codice che imposta l'origine in un blocco try/catch. Per altre info sull'apertura di file multimediali in rete, vedi Come riprodurre file multimediali dalla rete.

Come impedire l'attenuazione dello schermo

Per impedire la disattivazione dello schermo quando non vengono più rilevate azioni utente, ad esempio durante la riproduzione di video, puoi chiamare DisplayRequest.RequestActive.

Per risparmiare energia e assicurare una maggiore durata della batteria, puoi chiamare DisplayRequest.RequestRelease per rilasciare la richiesta dello schermo quando non è più necessaria, ad esempio quando il contenuto multimediale è in pausa o interrotto, al termine della riproduzione oppure quando l'app è sospesa.

Per ulteriori informazioni, vedi Esempio di stato di spegnimento dello schermo e Come mantenere attiva la visualizzazione durante la riproduzione audio/video.

Riproduci su ed elementi multimediali

Puoi usare Riproduci su per trasmettere audio, video o immagini dal computer ai dispositivi della rete domestica. Per ulteriori informazioni sull'abilitazione di Riproduci su nella tua app di Windows Store scritta in C++, C# o Visual Basic, vedi Guida introduttiva: Uso di Riproduci su nelle applicazioni.

Formati multimediali supportati

Per informazioni sui formati multimediali audio e video supportati nelle app di Windows Store, vedi Formati audio e video supportati.

Argomenti correlati

Roadmap
Roadmap per app di Windows Runtime scritte in C# e Visual Basic
Roadmap per app di Windows Runtime scritte in C++
Progettazione dell'esperienza utente per le applicazioni
Aggiunta di elementi multimediali
Esempi
Esempio di riproduzione multimediale XAML
Esempio di codifica intermedia di un file multimediale
Esempio di acquisizione di un file multimediale
Visualizzare l'esempio di stato di spegnimento
Riproduzione di elementi multimediali dall'inizio alla fine
Attività
Come creare controlli del trasporto multimediale personalizzati
Come aprire file multimediali mediante il controllo FileOpenPicker
Come selezionare tracce audio in altre lingue
Come aprire file multimediali dalla rete
Come usare i controlli del trasporto multimediale di sistema
Come ridimensionare e adattare il video
Come riprodurre audio in background
Riferimento
MediaElement
Play
PlaybackRate
IValueConverter
AudioStreamIndex
Altre risorse
Formati audio e video supportati
Ottimizzare le risorse multimediali

 

 

Mostra:
© 2015 Microsoft