Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Реализованы исходными объектами мультимедиа.
Источники мультимедиа — это объекты, создающие данные мультимедиа. Например, данные могут поступать из видеофайла, сетевого потока или аппаратного устройства, например камеры. Каждый источник мультимедиа содержит один или несколько потоков, и каждый поток предоставляет данные одного типа, например аудио или видео.
Наследство
Интерфейс 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 |