Partager via


Interface IMFMediaSource (mfidl.h)

Implémenté par les objets sources multimédias.

Les sources multimédias sont des objets qui génèrent des données multimédias. Par exemple, les données peuvent provenir d’un fichier vidéo, d’un flux réseau ou d’un périphérique matériel, tel qu’une caméra. Chaque source multimédia contient un ou plusieurs flux, et chaque flux fournit des données d’un type, telles que l’audio ou la vidéo.

Héritage

L’interface IMFMediaSource hérite de IMFMediaEventGenerator. IMFMediaSource dispose également de ces types de membres :

Méthodes

L’interface IMFMediaSource a ces méthodes.

 
IMFMediaSource ::CreatePresentationDescriptor

Récupère une copie du descripteur de présentation de la source multimédia. Les applications utilisent le descripteur de présentation pour sélectionner des flux et obtenir des informations sur le contenu source.
IMFMediaSource ::GetCharacteristics

Récupère les caractéristiques de la source multimédia.
IMFMediaSource ::P ause

Suspend tous les flux actifs dans la source multimédia.
IMFMediaSource ::Shutdown

Arrête la source multimédia et libère les ressources qu’il utilise.
IMFMediaSource ::Start

Démarre, recherche ou redémarre la source multimédia en spécifiant où démarrer la lecture.
IMFMediaSource ::Stop

Arrête tous les flux actifs dans la source multimédia.

Remarques

Dans Windows 8, cette interface est étendue avec IMFMediaSourceEx.

Pour certaines sources d’appareils, telles que les caméras ou les microphones, IMFMediaSource implémente également l’IKsControl qui peut être utilisé par les applications en mode utilisateur pour émettre des opérations KSPROPERTY, KSEVENT et KSMETHOD sur le pilote de périphérique sous-jacent.

Note

Cette interface est facultative et peut ne pas être disponible. Si cette interface n’est pas disponible, QueryInterface retourne E_NOINTERFACE.

Obtenez une instance de IMFMediaSource en appelant IMFSourceResolver ::CreateObjectFromByteStream, IMFSourceResolver ::CreateObjectFromURL ou les versions asynchrones de ces méthodes.

L’exemple suivant montre comment utiliser IMFSourceResolver pour obtenir une instance de IMFMediaSource à partir d’un 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;
}

Spécifications

Requirement Valeur
Client minimum requis Windows Vista [applications de bureau | Applications UWP]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau | Applications UWP]
plateforme cible Fenêtres
Header mfidl.h

Voir aussi

IMFMediaEventGenerator

Media Foundation Interfaces

Sources multimédias