События сеанса мультимедиа

Большинство операций сеанса мультимедиа выполняются асинхронно, поэтому приложение должно прослушивать события с помощью интерфейса IMFMediaEventGenerator сеанса мультимедиа. (Интерфейс IMFMediaSession наследует IMFMediaEventGenerator.) Точная последовательность событий будет зависеть от приложения, но следующие события вызываются сеансом мультимедиа практически в любой ситуации.

Событие Описание
MEEndOfPresentation Возникает, когда источник мультимедиа завершает презентацию. В настоящее время данные могут по-прежнему перемещаться по конвейеру.
MEError Возникает, если во время потоковой передачи возникает ошибка.
MESessionClosed Возникает после завершения метода Close . Это событие является последним событием, которое помещается в очередь сеанса мультимедиа. После получения этого события можно с уверенностью завершить работу всех созданных источников мультимедиа.
MESessionEnded Возникает после завершения сеанса мультимедиа с последней презентацией.
MESessionNotifyPresentationTime Уведомляет приложение о времени начала новой презентации.
MESessionStarted Возникает после завершения метода Start . Если не произошла ошибка, данные перемещаются по конвейеру на этом этапе.
MESessionTopologySet Возникает после завершения метода SetTopology . Если не произошла ошибка, приложению не нужно предпринимать никаких действий.
MESessionTopologyStatus Вызывается в разное время при изменении состояния топологии.

 

Метод IMFMediaSession::Shutdown не вызывает событие. Метод Shutdown является синхронным. После возврата этого метода можно с уверенностью освободить указатель обратного вызова события.

В дополнение к событиям из сеанса мультимедиа приложение может получать события из приемников мультимедиа в топологии. Это могут быть пользовательские события, определенные приемником мультимедиа, которые могут содержать произвольные данные. Например, приемник может получить данные о событиях из исходных данных, которые могут быть из ненадежного внешнего источника. Приложение должно игнорировать все события, которые оно не распознает, и проявлять осторожность при анализе данных событий.

Сеанс мультимедиа