Поделиться через


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

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

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

 

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

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

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