Partilhar via


Interface IMFMediaSource (mfidl.h)

Implementado por objetos de origem de mídia.

Fontes de mídia são objetos que geram dados de mídia. Por exemplo, os dados podem vir de um arquivo de vídeo, de um fluxo de rede ou de um dispositivo de hardware, como uma câmera. Cada fonte de mídia contém um ou mais fluxos e cada fluxo fornece dados de um tipo, como áudio ou vídeo.

Herança

A interface IMFMediaSource herda de IMFMediaEventGenerator. IMFMediaSource também tem esses tipos de membros:

Methods

A interface IMFMediaSource tem esses métodos.

 
IMFMediaSource::CreatePresentationDescriptor

Recupera uma cópia do descritor de apresentação da fonte de mídia. Os aplicativos usam o descritor de apresentação para selecionar fluxos e obter informações sobre o conteúdo de origem.
IMFMediaSource::GetCharacteristics

Recupera as características da fonte de mídia.
IMFMediaSource::P ause

Pausa todos os fluxos ativos na fonte de mídia.
IMFMediaSource::Shutdown

Desliga a fonte de mídia e libera os recursos que está usando.
IMFMediaSource::Start

Inicia, procura ou reinicia a fonte de mídia especificando onde iniciar a reprodução.
IMFMediaSource::Stop

Interrompe todos os fluxos ativos na fonte de mídia.

Observações

No Windows 8, essa interface é estendida com IMFMediaSourceEx.

Para algumas fontes de dispositivo, como câmeras ou microfones, o IMFMediaSource também implementa o IKsControl que pode ser usado por aplicativos de modo de usuário para emitir operações KSPROPERTY, KSEVENT e KSMETHOD para o driver de dispositivo subjacente.

Observação

Essa interface é opcional e pode não estar disponível. Se essa interface não estiver disponível, QueryInterface retornará E_NOINTERFACE.

Obtenha uma instância do IMFMediaSource chamando IMFSourceResolver::CreateObjectFromByteStream, IMFSourceResolver::CreateObjectFromURL ou as versões assíncronas desses métodos.

O exemplo a seguir mostra como usar IMFSourceResolver para obter uma instância de IMFMediaSource de um IMFByteStream.

#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;
}

Requirements

Requirement Value
Cliente mínimo suportado Windows Vista [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo compatível Windows Server 2008 [aplicativos da área de trabalho | Aplicativos UWP]
da Plataforma de Destino Windows
Header mfidl.h

Consulte também

IMFMediaEventGenerator

Media Foundation Interfaces

Fontes de mídia