メソッド | 処理 | データ元 |
---|---|---|
CreateObjectFromURL() | 同期 | URL |
CreateObjectFromByteStream() | 同期 | バイトストリーム |
BeginCreateObjectFromURL() | 非同期 | URL |
BeginCreateObjectFromByteStream() | 非同期 | バイトストリーム |
URLから、Media SourceまたはByte Streamを作成できます。
HRESULT CreateObjectFromURL( LPCWSTR pwszURL, // ソースのURL DWORD dwFlags, // Source Resolver Flagsの値 IPropertyStore *pProps, // プロパティ ストア MF_OBJECT_TYPE *pObjectType, // 作成されたオブジェクトの型を受け取るためのポインタ IUnknown **ppObject // オブジェクトのIUnknownインターフェイスを受け取るためのポインタ );IMFSourceResolver::CreateObjectFromURL | Microsoft Learn
このメソッドは下表のような値を返します。
値 | 識別子 | 意味 |
---|---|---|
0x0 | S_OK | |
0xC00D36F1 | MF_E_SOURCERESOLVER_MUTUALLY_EXCLUSIVE_FLAGS | Mutually exclusive flags have been specified to source resolver. This flag combination is invalid. |
0xC00D36C3 | MF_E_UNSUPPORTED_SCHEME | 与えられたURLのスキームはサポートされない |
0xC00D36C4 | MF_E_UNSUPPORTED_BYTESTREAM_TYPE | 与えられたURLのバイトストリーム型はサポートされない (ファイルの拡張子がファイル形式と一致していない場合にもこのエラーとなる。その場合にはdwFlagsにMF_RESOLUTION_CONTENT_DOES_NOT_HAVE_TO_MATCH_EXTENSION_OR_MIME_TYPEを指定することで解決できる) |
このメソッドを用いてMedia Sourceのインスタンスを取得するには、dwFlagsにMF_RESOLUTION_MEDIASOURCEを指定して、次のようにします。
IMFSourceResolver *pSourceResolver = NULL; HRESULT hr = MFCreateSourceResolver(&pSourceResolver); PCWSTR pwszURL = "sample.wmv"; MF_OBJECT_TYPE objectType = MF_OBJECT_INVALID; IUnknown *pMediaSource = NULL; hr = pSourceResolver->CreateObjectFromURL( pwszURL, MF_RESOLUTION_MEDIASOURCE, NULL, &objectType, &pMediaSource ); if (FAILED(hr)) goto done; IMFMediaSource **ppMediaSource; hr = pMediaSource->QueryInterface(IID_PPV_ARGS(ppMediaSource));
HRESULT CreateObjectFromByteStream( IMFByteStream *pByteStream, // バイトストリームへのポインタ LPCWSTR pwszURL, // バイトストリームのURL。NULLでも可 DWORD dwFlags, IPropertyStore *pProps, MF_OBJECT_TYPE *pObjectType, IUnknown **ppObject );IMFSourceResolver::CreateObjectFromByteStream (mfidl.h) | Microsoft Learn