Come riprodurre file multimediali con Media Foundation

Questa esercitazione illustra come riprodurre file multimediali usando l'oggetto Media Session .

Prerequisiti

Prima di leggere questo argomento, è necessario avere familiarità con i concetti di Media Foundation seguenti:

Nota

Questo argomento non descrive come riprodurre i file protetti da Digital Rights Management (DRM). Per informazioni su DRM in Microsoft Media Foundation, vedere Come riprodurre file multimediali protetti.

 

Panoramica

Gli oggetti seguenti vengono usati per riprodurre un file multimediale con la sessione multimediale:

  • Un'origine multimediale è un oggetto che analizza un file multimediale o un'altra origine di dati multimediali. L'origine multimediale crea oggetti di flusso per ogni flusso audio o video nel file. I decodificatori converte i dati multimediali codificati in video e audio non compressi.
  • Il resolver di origine crea un'origine multimediale da un URL.
  • Il renderer video avanzato (EVR) esegue il rendering del video sullo schermo.
  • Streaming Audio Renderer (SAR) esegue il rendering dell'audio in un altoparlante o in un altro dispositivo di output audio.
  • Una topologia definisce il flusso di dati dall'origine multimediale a EVR e SAR.
  • La sessione multimediale controlla il flusso di dati e invia eventi di stato all'applicazione. La figura seguente illustra questo processo.

diagram showing playback using the media session

Di seguito è riportata una struttura generale dei passaggi necessari per riprodurre un file multimediale usando la sessione multimediale:

  1. Chiamare la funzione MFStartup per inizializzare la piattaforma Media Foundation.

  2. Chiamare MFCreateMediaSession per creare una nuova istanza della sessione multimediale.

  3. Usare il resolver di origine per creare un'origine multimediale. Per altre informazioni, vedere Uso del resolver di origine.

  4. Creare una topologia che connette l'origine multimediale a EVR e SAR. In questo passaggio l'applicazione crea una topologia parziale che non include i decodificatori. Per altre informazioni, vedere Creazione di topologie di riproduzione.

  5. Chiamare FMIMediaSession::SetTo topologia per impostare la topologia nella sessione multimediale.

  6. Usare l'interfaccia IMFMediaEventGenerator per ottenere eventi dalla sessione multimediale.

  7. Chiamare FMIMediaSession::Start per avviare la riproduzione. Dopo l'avvio della riproduzione, è possibile sospendere la riproduzione chiamando FMMediaSession::P ause o interrompendola chiamando FMMediaSession::Stop.

  8. Quando l'applicazione viene chiusa, rilasciare le risorse:

    1. Chiamare FMIMediaSession::Close per chiudere la sessione multimediale. Questo metodo è asincrono. Al termine, la sessione multimediale invia un evento MESessionClosed . È quindi possibile eseguire i passaggi rimanenti.
    2. Chiamare FMIMediaSource::Shutdown per arrestare l'origine multimediale.
    3. Chiamare FMIMediaSession::Shutdown per arrestare la sessione multimediale.
    4. Chiamare MFShutdown per arrestare la piattaforma Media Foundation.

Le sezioni seguenti mostrano un esempio di codice completo:

Sessione multimediale

Riproduzione di audio/video