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


Использование источников мультимедиа с сеансом мультимедиа

Если вы используете сеанс мультимедиа для управления воспроизведением, набор методов, которые следует вызывать в источнике мультимедиа, ограничен. В этом разделе описывается использование источника мультимедиа в сочетании с сеансом мультимедиа.

Ниже приведены основные действия, которые будет выполнять приложение.

  1. Создайте источник мультимедиа. Чтобы создать источник мультимедиа, используйте сопоставитель источника. Дополнительные сведения см. в разделе Сопоставитель источника. Сопоставитель источника возвращает указатель на интерфейс IMFMediaSource источника. (Если вы написали пользовательский источник мультимедиа, можно указать пользовательский метод создания.)

  2. Настройте презентацию. Чтобы настроить презентацию источника, вызовите IMFMediaSource::CreatePresentationDescriptor. Эту копию можно изменить, но изменения не станут активными до начала воспроизведения. Не изменяйте дескриптор презентации во время воспроизведения. Дополнительные сведения см. в разделе Дескрипторы презентации.

  3. Создайте топологию, содержащую источник мультимедиа. Дополнительные сведения см. в разделе Топологии.

  4. Используйте сеанс мультимедиа для управления воспроизведением. Сеанс мультимедиа вызывает методы в источнике мультимедиа. В настоящее время приложение не должно вызывать методы в источнике мультимедиа.

  5. Перед освобождением источника мультимедиа вызовите IMFMediaSource::Shutdown , чтобы завершить работу источника.

    Примечание

    Если вы используете источник sequencer, источник sequencer обрабатывает завершение работы источников сегментов. Дополнительные сведения см. в разделе Источник Sequencer.

     

Если используется сеанс мультимедиа, единственными методами, которые следует вызывать в источнике мультимедиа, являются CreatePresentationDescriptor, GetCharacteristics и Shutdown. В частности:

  • Не вызывайте вызовы Start, Pause или Stop; Эти методы должны вызываться только сеансом мультимедиа.

  • Не вызывайте методы IMFMediaStream .

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

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