Método IMFPMediaPlayer::CreateMediaItemFromObject (mfplay.h)

Importante Obsoleto. Esta API se puede quitar de futuras versiones de Windows. Las aplicaciones deben usar la sesión multimedia para la reproducción.
 

Crea un elemento multimedia a partir de un objeto .

Sintaxis

HRESULT CreateMediaItemFromObject(
  [in]  IUnknown      *pIUnknownObj,
  [in]  BOOL          fSync,
  [in]  DWORD_PTR     dwUserData,
  [out] IMFPMediaItem **ppMediaItem
);

Parámetros

[in] pIUnknownObj

Puntero a la interfaz IUnknown del objeto. Vea la sección Comentarios.

[in] fSync

Si es TRUE, el método se bloquea hasta que se completa. Si es FALSE, el método no bloquea y se completa de forma asincrónica.

[in] dwUserData

Valor definido por la aplicación que se va a almacenar en el elemento multimedia. Para recuperar este valor del elemento multimedia, llame a IMFPMediaItem::GetUserData.

[out] ppMediaItem

Recibe un puntero a la interfaz IMFPMediaItem . El autor de la llamada debe liberar la interfaz . Si fSync es TRUE, este parámetro debe ser un puntero válido. Si bSync es FALSE, este parámetro debe ser NULL.

Valor devuelto

El método devuelve un valor HRESULT. Entre los valores posibles se incluyen los que se indican en la tabla siguiente, entre otros.

Código devuelto Descripción
S_OK
El método se ha llevado a cabo de forma correcta.
E_INVALIDARG
Argumento no válido.
MF_E_INVALIDREQUEST
Solicitud no válida. Este error puede producirse cuando fSync es FALSE y la aplicación no proporcionó una interfaz de devolución de llamada. Vea la sección Comentarios.
MF_E_SHUTDOWN
Se llamó al método Shutdown del objeto.

Comentarios

El parámetro pIUnknownObj debe especificar uno de los siguientes:

  • Puntero a un origen multimedia. Los orígenes multimedia exponen la interfaz IMFMediaSource . Es responsabilidad del autor de la llamada llamar a IMFMediaSource::Shutdown en la fuente multimedia.
  • Puntero a una secuencia de bytes. Los flujos de bytes exponen la interfaz IMFByteStream . Internamente, el método llama al método IMFSourceResolver::CreateObjectFromByteStream para crear un origen multimedia a partir de la secuencia de bytes. Por lo tanto, un controlador de secuencia de bytes debe estar registrado para la secuencia de bytes. Para obtener más información sobre los controladores de secuencias de bytes, vea Controladores de esquema y controladores de Byte-Stream.
Este método no pone en cola el elemento multimedia para la reproducción. Para poner en cola el elemento para su reproducción, llame a IMFPMediaPlayer::SetMediaItem.

El método CreateMediaItemFromObject se puede llamar de forma sincrónica o asincrónica:

  • Si fSync es TRUE, el método se completa de forma sincrónica. El puntero IMFPMediaItem se devuelve en el parámetro ppMediaItem .
  • Si fSync es FALSE, el método se completa de forma asincrónica. Cuando se completa la operación, se invoca el método de devolución de llamada IMFPMediaPlayerCallback::OnMediaPlayerEvent de la aplicación. El tipo de evento es MFP_EVENT_TYPE_MEDIAITEM_CREATED. Los datos del evento contienen el puntero IMFPMediaItem para el nuevo elemento multimedia.
La interfaz de devolución de llamada se establece cuando se llama por primera vez a MFPCreateMediaPlayer para crear el objeto de reproductor MFPlay. Si no proporciona una interfaz de devolución de llamada, el parámetro fSync debe ser TRUE. De lo contrario, CreateMediaItemFromObject devuelve MF_E_INVALIDREQUEST.

Si realiza varias llamadas asincrónicas a CreateMediaItemFromObject, no se garantiza que se completen en el mismo orden. Use el parámetro dwUserData para buscar coincidencias con elementos multimedia creados con solicitudes pendientes.

Configuración del origen

Si pIUnknownObj apunta a una secuencia de bytes, puede configurar el origen multimedia realizando los pasos siguientes:
  1. Llame a QueryInterface en el puntero IMFPMediaPlayer para obtener la interfaz IPropertyStore .
  2. Llame a IPropertyStore::SetValue para establecer propiedades para el origen multimedia. Para obtener una lista de las propiedades de configuración, consulte Configuración de un origen multimedia. Los orígenes de medios de terceros pueden definir propiedades personalizadas.
  3. Llame al método CreateMediaItemFromObject para crear el elemento multimedia.
Si pIUnknownObj apunta a un origen multimedia, puede configurar el origen en el momento en que lo cree.

Requisitos

   
Cliente mínimo compatible Windows 7 [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 R2 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado mfplay.h

Consulte también

IMFPMediaPlayer

Uso de MFPlay para la reproducción de audio y vídeo