Informazioni sulla sessione multimediale
La sessione multimediale espone l'interfaccia IMFMediaSession. Esistono due modi per creare la sessione multimediale, a seconda che l'applicazione supporti il contenuto protetto:
- Se l'applicazione non supporta il contenuto protetto, è possibile creare la sessione multimediale chiamando MFCreateMediaSession. Questa funzione crea la sessione multimediale all'interno del processo dell'applicazione.
- Per supportare il contenuto protetto, creare la sessione multimediale chiamando MFCreatePMPMediaSession. Questa funzione crea la sessione multimediale all'interno del processo PMP (Protected Media Path). L'applicazione riceve un puntatore a un oggetto proxy che effettua il marshalling delle chiamate di metodo attraverso il limite del processo. Si noti che la sessione multimediale PMP può essere usata per riprodurre contenuti non crittografati, nonché contenuti protetti.
Qualsiasi applicazione che usa la sessione multimediale seguirà questi passaggi generali:
- Creare una topologia.
- Accodare la topologia nella sessione multimediale chiamando IMFMediaSession::SetTopology.
- Controllare il flusso di dati chiamando IMFMediaSession::Start, IMFMediaSession::P auseo IMFMediaSession::Stop.
- Prima dell'uscita dall'applicazione, chiamare IMFMediaSession::Close per chiudere la sessione multimediale.
- Terminare le sorgenti multimediali create dall'applicazione chiamando IMFMediaSource::Shutdown.
- Arrestare la sessione multimediale chiamando IMFMediaSession::Shutdown.
Quando si usa la sessione multimediale, l'applicazione non deve avviare, sospendere o arrestare direttamente l'origine multimediale. Tutte le modifiche di stato devono essere avviate chiamando metodi IMFMediaSession. Le modifiche di stato nella sorgente multimediale vengono gestite dalla sessione multimediale.
Molti altri dettagli dipendono dalla funzionalità specifica dell'applicazione.
Contenuto protetto
Per riprodurre contenuto protetto, è necessario creare la sessione multimediale all'interno del percorso multimediale protetto chiamando MFCreatePMPMediaSession. Questa funzione crea un'istanza della sessione multimediale all'interno del PMP e restituisce un puntatore a un oggetto proxy che effettua il marshalling delle interfacce attraverso il limite del processo.
Nella maggior parte dei confronti, l'uso della sessione multimediale all'interno del PMP è trasparente per l'applicazione. Tuttavia, l'applicazione potrebbe dover richiamare determinate azioni che consentono all'utente di riprodurre il contenuto. Ad esempio, l'utente potrebbe dover ottenere una licenza DRM. Media Foundation definisce un meccanismo generico per queste azioni usando l'interfaccia IMFContentEnabler.
Per altre informazioni, vedere gli argomenti seguenti:
Orologio per presentazioni
La sessione multimediale gestisce tutti gli aspetti dell'orologio della presentazione:
Creazione dell'orologio della presentazione.
Selezione dell'origine del tempo.
Notificando i destinatari multimediali riguardo all'orologio
Avvio, arresto e sospensione dell'orologio in base alle esigenze.
Spegni l'orologio.
Per ottenere un puntatore all'orologio della presentazione, chiamare IMFMediaSession::GetClock nella sessione multimediale. L'orologio della presentazione non restituisce un'ora valida finché la sessione multimediale non invia l'evento MESessionTopologyStatus con il flag MF_TOPOSTATUS_READY. Fino ad allora, GetClock restituisce MF_E_CLOCK_NO_TIME_SOURCE.
Un'applicazione che usa la sessione multimediale non deve mai avviare, arrestare o sospendere l'orologio della presentazione; modificare la frequenza di clock; o spegnere l'orologio.
Quando l'applicazione chiama IMFMediaSession::Start, la sessione multimediale avvia l'orologio della presentazione con un'ora di inizio uguale alla posizione iniziale specificata nel metodo Start. Per altre informazioni sulla sessione multimediale, vedere Sessione multimediale.
Argomenti correlati