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


Интерфейс IMFMediaSource (mfidl.h)

Реализованы исходными объектами мультимедиа.

Источники мультимедиа — это объекты, создающие данные мультимедиа. Например, данные могут поступать из видеофайла, сетевого потока или аппаратного устройства, например камеры. Каждый источник мультимедиа содержит один или несколько потоков, и каждый поток предоставляет данные одного типа, например аудио или видео.

Наследство

Интерфейс IMFMediaSource наследует от МВФMediaEventGenerator. IMFMediaSource также имеет следующие типы членов:

Методы

Интерфейс IMFMediaSource имеет эти методы.

 
IMFMediaSource::CreatePresentationDescriptor

Извлекает копию дескриптора презентации источника мультимедиа. Приложения используют дескриптор презентации для выбора потоков и получения сведений о исходном содержимом.
IMFMediaSource::GetCharacteristics

Извлекает характеристики источника мультимедиа.
IMFMediaSource::P ause

Приостанавливает все активные потоки в источнике мультимедиа.
IMFMediaSource::Shutdown

Завершает работу источника мультимедиа и освобождает используемые ресурсы.
IMFMediaSource::Start

Запускается, ищет или перезапускает источник мультимедиа, указывая, где начать воспроизведение.
IMFMediaSource::Stop

Останавливает все активные потоки в источнике мультимедиа.

Замечания

В Windows 8 этот интерфейс расширен с помощью МВФMediaSourceEx.

Для некоторых источников устройств, таких как камеры или микрофоны, МВФMediaSource также реализует IKsControl , которые можно использовать приложениями пользовательского режима для выдачи операций KSPROPERTY, KSEVENT и KSMETHOD базовому драйверу устройства.

Замечание

Этот интерфейс является необязательным и может быть недоступен. Если этот интерфейс недоступен, QueryInterface вернет E_NOINTERFACE.

Получите экземпляр МВФMediaSource , вызвав МВФSourceResolver::CreateObjectFromByteStream, МВФSourceResolver::CreateObjectFromURL или асинхронные версии этих методов.

В следующем примере показано, как использовать МВФSourceResolver для получения экземпляра МВФMediaSource из МВФByteStream.

#include <wil.h>
#include <mfplat.h>
#include <mfidl.h>

HRESULT CreateMediaSourceFromStream(_In_ IMFByteStream* stream, _COM_Outptr_ IMFMediaSource** source)
{
    *source = nullptr;

    wil::com_ptr_nothrow<IMFSourceResolver> sourceResolver;
    RETURN_IF_FAILED(MFCreateSourceResolver(&sourceResolver));

    MF_OBJECT_TYPE objectType;
    wil::com_ptr_nothrow<IUnknown> sourceUnknown;
    RETURN_IF_FAILED(sourceResolver->CreateObjectFromByteStream(stream, nullptr, MF_RESOLUTION_MEDIASOURCE, nullptr, &objectType, &sourceUnknown));

    RETURN_IF_FAILED(sourceUnknown.copy_to(IID_PPV_ARGS(source)));
    return S_OK;
}

Требования

Требование Ценность
Минимальный поддерживаемый клиент Windows Vista [классические приложения | Приложения UWP]
минимальный поддерживаемый сервер Windows Server 2008 [классические приложения | Приложения UWP]
целевая платформа Виндоус
Header mfidl.h

См. также

МВФMediaEventGenerator

Интерфейсы Media Foundation

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