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 IMFMediaEventGenerator della sessione multimediale. L'interfaccia IMFMediaSession eredita IMFMediaEventGenerator. La sequenza esatta di eventi dipende dall'applicazione, ma gli eventi seguenti vengono generati dalla sessione multimediale in quasi tutte le situazioni.

Event Descrizione
MEEndOfPresentation Generato quando l'origine multimediale ha completato la presentazione. I dati potrebbero comunque essere spostati nella pipeline in questo momento.
MEError Generato se si verifica un errore durante lo streaming.
MESessionClosed Generato al termine del metodo Close . Questo evento è l'ultimo evento che la sessione multimediale accoda. 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 l'avvio della nuova presentazione.
MESessionStarted Generato al termine del metodo Start . A meno che non si sia verificato un errore, i dati vengono spostati nella pipeline a questo punto.
MESessionTopologySet Generato al termine del metodo SetTopology . A meno che non si verifichi un errore, l'applicazione non deve eseguire alcuna azione.
MESessionTopologyStatus Generato in vari 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