События сеанса мультимедиа
Большинство операций сеанса мультимедиа выполняются асинхронно, поэтому приложение должно прослушивать события с помощью интерфейса МВФMediaEventGenerator. (Интерфейс IMFMediaSession наследует МВФMediaEventGenerator.) Точную последовательность событий зависит от приложения, но следующие события вызываются сеансом мультимедиа практически в любой ситуации.
Событие | Описание |
---|---|
MEEndOfPresentation | Вызывается, когда источник мультимедиа завершил презентацию. Данные по-прежнему могут перемещаться по конвейеру в настоящее время. |
MEError | Возникает, если во время потоковой передачи возникает ошибка. |
MESessionClosed | Вызывается при завершении метода close Close. Это событие является последним событием, которое очереди сеансов мультимедиа. После получения этого события безопасно завершить работу всех созданных источников мультимедиа. |
MESessionEnded | Вызывается при завершении сеанса мультимедиа с последней презентацией. |
MESessionNotifyPresentationTime | Уведомляет о применении времени презентации при запуске новой презентации. |
MESessionStarted | Вызывается при завершении метода Start. Если не произошла ошибка, данные перемещаются через конвейер в данный момент. |
MESessionTopologySet | Вызывается при завершении метода setTopology. Если ошибка не возникает, приложению не нужно предпринимать никаких действий. |
MESessionTopologyStatus | Вызывается в разное время при изменении состояния топологии. |
Метод IMFMediaSession::Shutdown не вызывает событие. Метод Shutdown синхронен. После возврата этого метода можно безопасно освободить указатель обратного вызова события.
Помимо событий из сеанса мультимедиа приложение может получать события из приемников мультимедиа в топологии. Это могут быть пользовательские события, определенные приемником мультимедиа, которые могут содержать произвольные данные. Например, приемник может наследить данные события из исходных данных, которые могут быть из ненадежного внешнего источника. Приложение должно игнорировать любые события, которые он не распознает, и соблюдать осторожность при анализе данных событий.
Связанные разделы