Condividi tramite


Eventi di sessione multimediale

La maggior parte delle operazioni della sessione multimediale viene eseguita in modo asincrono, pertanto l'applicazione deve restare in ascolto degli eventi usando l'interfaccia IMFMediaEventGener ator di Sessione multimediale. L'interfaccia IMFMediaSession eredita IMFMediaEventGenerator. La sequenza esatta degli eventi dipende dall'applicazione, ma gli eventi seguenti vengono generati dalla sessione multimediale in quasi tutte le situazioni.

Evento Descrizione
MEEndOfPresentation Generato quando l'origine multimediale ha completato la presentazione. I dati potrebbero essere ancora in movimento attraverso la pipeline in questo momento.
MEError Generato se si verifica un errore durante lo streaming.
MESessionClosed Generato quando il metodo Close viene completato. Questo evento è l'ultimo evento in cui viene accodato la sessione multimediale. Dopo aver ricevuto questo evento, è possibile arrestare tutte le origini multimediali create.
MESessionEnded Generato quando la sessione multimediale viene eseguita con l'ultima presentazione.
MESessionNotifyPresentationTime Notifica all'applicazione dell'ora di presentazione all'avvio della nuova presentazione.
MESessionStarted Generato al completamento del metodoStart. A meno che non si sia verificato un errore, i dati vengono spostati nella pipeline a questo punto.
MESessionTopologySet Generato al completamento del metodosetTopology. A meno che non si verifichi un errore, l'applicazione non deve eseguire alcuna azione.
MESessionTopologyStatus Generato in diversi momenti in cui lo stato di una topologia cambia.

 

Il metodo IMFMediaSession::Shutdown non genera un evento. Il metodo Shutdown è sincrono. Al termine di questo metodo, è possibile rilasciare il puntatore di callback dell'evento.

Oltre agli eventi della sessione multimediale, l'applicazione potrebbe ricevere eventi dai sink multimediali nella topologia. Questi possono essere eventi personalizzati definiti dal sink multimediale, che potrebbero contenere dati arbitrari. Ad esempio, il sink potrebbe derivare i dati dell'evento dai dati di origine, che possono essere da un'origine esterna non attendibile. Un'applicazione deve ignorare tutti gli eventi che non riconosce e prestare attenzione durante l'analisi dei dati degli eventi.

sessione multimediale