Использование источников мультимедиа с сеансом мультимедиа
Если вы используете сеанс мультимедиа для управления воспроизведением, набор методов, которые следует вызывать в источнике мультимедиа, ограничен. В этом разделе описывается использование источника мультимедиа в сочетании с сеансом мультимедиа.
Ниже приведены основные действия, которые будет выполнять приложение.
Создайте источник мультимедиа. Чтобы создать источник мультимедиа, используйте сопоставитель источника. Дополнительные сведения см. в разделе Сопоставитель источника. Сопоставитель источника возвращает указатель на интерфейс IMFMediaSource источника. (Если вы написали пользовательский источник мультимедиа, можно указать пользовательский метод создания.)
Настройте презентацию. Чтобы настроить презентацию источника, вызовите IMFMediaSource::CreatePresentationDescriptor. Эту копию можно изменить, но изменения не станут активными до начала воспроизведения. Не изменяйте дескриптор презентации во время воспроизведения. Дополнительные сведения см. в разделе Дескрипторы презентации.
Создайте топологию, содержащую источник мультимедиа. Дополнительные сведения см. в разделе Топологии.
Используйте сеанс мультимедиа для управления воспроизведением. Сеанс мультимедиа вызывает методы в источнике мультимедиа. В настоящее время приложение не должно вызывать методы в источнике мультимедиа.
Перед освобождением источника мультимедиа вызовите IMFMediaSource::Shutdown , чтобы завершить работу источника.
Примечание
Если вы используете источник sequencer, источник sequencer обрабатывает завершение работы источников сегментов. Дополнительные сведения см. в разделе Источник Sequencer.
Если используется сеанс мультимедиа, единственными методами, которые следует вызывать в источнике мультимедиа, являются CreatePresentationDescriptor, GetCharacteristics и Shutdown. В частности:
Не вызывайте вызовы Start, Pause или Stop; Эти методы должны вызываться только сеансом мультимедиа.
Не вызывайте методы IMFMediaStream .
Не извлекайте события непосредственно из источника мультимедиа или любого из потоков. Сеанс мультимедиа должен получать эти события для правильной работы конвейера. Сеанс мультимедиа пересылает все события, необходимые приложению.
Связанные темы