Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Сеанс мультимедиа обеспечивает управление транспортировкой, например изменение состояний презентации (воспроизведение, приостановка и остановка в сценарии воспроизведения в стиле плейлиста). В этом разделе описываются методы сеанса мультимедиа, которые приложение должно вызывать для изменения состояния воспроизведения.
В следующей таблице показаны допустимые переходы состояния презентации.
Изменение состояния | Описание |
---|---|
Воспроизведение — пауза> | Таймер презентации зависает. |
Воспроизведение -> Остановка | Часы презентации сбрасываются. |
Пауза — воспроизведение> | Часы презентации возобновляются с момента, когда они были заморожены в переходе от воспроизведения к паузе. |
Пауза —> Остановка | Часы презентации сбрасываются. |
Остановка —> играть | Таймер для презентации запускается с её начала. |
Остановка — пауза> | Запрещено. |
Изменение состояний презентации
Вызовите метод IMFMediaSession::P ause, чтобы приостановить воспроизведение.
hr = pMediaSession->Pause();
Перед вызовом этого метода приложение должно вызвать метод IMFMediaSession::GetSessionCapabilities, чтобы определить, поддерживает ли источник мультимедиа состояние Приостановки. Если это произойдет, этот метод возвращает MFSESSIONCAP_PAUSE в параметре pdwCaps.
Приостановка временно останавливает медиасеанс, таймер презентации и приемник потоков для текущего сеанса. После того как вызов успешно завершается, приложение получает событие MESessionPaused.
Вызовите метод IMFMediaSession::Stop, чтобы остановить воспроизведение.
hr = pMediaSession->Stop();
Этот метод останавливает сеанс мультимедиа, останавливая источник мультимедиа, соответствующие часы и потоковые приемники. Если сеанс мультимедиа управляет источником последовательности, базовые собственные источники остановлены источником последовательности. После того как сеанс мультимедиа остановлен, приложение получает событие MESessionStopped.
Вызовите метод IMFMediaSession::Start для запуска воспроизведения или поиска новой позиции.
hr = pMediaSession->Start(NULL, &var);
Этот метод запускает сеанс мультимедиа из состояний приостановки и остановки. Сеанс мультимедиа отвечает за настройку потока данных в конвейере. Этот метод указывает сеансу мультимедиа запустить презентационные часы. После этого вызова сеанс медиапроигрывателя отправляет событие MESessionStarted в приложение.
Связанные разделы