IMFPMediaPlayer::CreateMediaItemFromObject メソッド (mfplay.h)

大事な 廃止。 この API は、今後の Windows リリースから削除される可能性があります。 アプリケーションでは、再生に メディア セッション を使用する必要があります。
 

オブジェクトからメディア項目を作成します。

構文

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

パラメーター

[in] pIUnknownObj

オブジェクトの IUnknown インターフェイスへのポインター。 「解説」を参照してください。

[in] fSync

TRUE の場合、メソッドは完了するまでブロックします。 FALSE の場合、メソッドはブロックされず、非同期的に完了します。

[in] dwUserData

メディア項目に格納するアプリケーション定義の値。 メディア アイテムからこの値を取得するには、 IMFPMediaItem::GetUserData を呼び出します。

[out] ppMediaItem

IMFPMediaItem インターフェイスへのポインターを受け取ります。 呼び出し元はインターフェイスを解放する必要があります。 fSyncTRUE の場合、このパラメーターは有効なポインターである必要があります。 bSyncFALSE の場合、このパラメーターは NULL である必要があります。

戻り値

このメソッドは HRESULT を返します。 有効な値を次の表に示しますが、これ以外にもあります。

リターン コード 説明
S_OK
メソッドが成功しました。
E_INVALIDARG
引数が無効です。
MF_E_INVALIDREQUEST
無効な要求です。 このエラーは、 fSyncFALSE で、アプリケーションがコールバック インターフェイスを提供しなかった場合に発生する可能性があります。 「解説」を参照してください。
MF_E_SHUTDOWN
オブジェクトの Shutdown メソッドが呼び出されました。

解説

pIUnknownObj パラメーターは、次のいずれかを指定する必要があります。

  • メディア ソースへのポインター。 メディア ソースは、 IMFMediaSource インターフェイスを公開します。 メディア ソースで IMFMediaSource::Shutdown を呼び出すのは呼び出し元の責任です。
  • バイト ストリームへのポインター。 バイト ストリームは、 IMFByteStream インターフェイスを公開します。 メソッドは内部的に IMFSourceResolver::CreateObjectFromByteStream メソッドを呼び出して、バイト ストリームからメディア ソースを作成します。 したがって、バイト ストリーム ハンドラーをバイト ストリームに登録する必要があります。 バイト ストリーム ハンドラーの詳細については、「 スキーム ハンドラー」と「Byte-Stream ハンドラー」を参照してください。
このメソッドは、再生のためにメディア項目をキューに入れます。 再生のために項目をキューに登録するには、 IMFPMediaPlayer::SetMediaItem を呼び出します。

CreateMediaItemFromObject メソッドは、同期的または非同期的に呼び出すことができます。

  • fSyncTRUE の場合、メソッドは同期的に完了します。 IMFPMediaItem ポインターは、ppMediaItem パラメーターで返されます。
  • fSyncFALSE の場合、メソッドは非同期的に完了します。 操作が完了すると、アプリケーションの IMFPMediaPlayerCallback::OnMediaPlayerEvent コールバック メソッドが呼び出されます。 イベントの種類が MFP_EVENT_TYPE_MEDIAITEM_CREATED。 イベント データには、新しいメディア項目の IMFPMediaItem ポインターが含まれています。
コールバック インターフェイスは、MFPlay プレーヤー オブジェクトを作成するために 、最初に MFPCreateMediaPlayer を呼び出すときに設定されます。 コールバック インターフェイスを指定しない場合、 fSync パラメーターは TRUE である必要があります。 それ以外の場合、 CreateMediaItemFromObjectMF_E_INVALIDREQUESTを返します。

CreateMediaItemFromObject に対して複数の非同期呼び出しを行う場合、同じ順序で完了することは保証されません。 dwUserData パラメーターを使用して、作成されたメディア項目と保留中の要求を照合します。

ソースの構成

pIUnknownObj がバイト ストリームを指している場合は、次の手順を実行してメディア ソースを構成できます。
  1. IPropertyStore インターフェイスを取得するには、IMFPMediaPlayer ポインターで QueryInterface を呼び出します。
  2. IPropertyStore::SetValue を呼び出して、メディア ソースのプロパティを設定します。 構成プロパティの一覧については、「 メディア ソースの構成」を参照してください。 サード パーティのメディア ソースでは、カスタム プロパティを定義できます。
  3. CreateMediaItemFromObject メソッドを呼び出して、メディア アイテムを作成します。
pIUnknownObj がメディア ソースを指している場合は、作成時にソースを構成できます。

要件

   
サポートされている最小のクライアント Windows 7 [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 R2 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー mfplay.h

関連項目

IMFPMediaPlayer

オーディオ/ビデオ再生に MFPlay を使用する