リーダー オブジェクト

[このページに関連付けられている機能である Windows Media Format 11 SDK は、レガシ機能です。 これは、ソース リーダーシンク ライターによって置き換えられます。 ソース リーダーシンク ライターは、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、Windows Media Format 11 SDK ではなくソース リーダーシンク ライターを使用することを強くお勧めします。 Microsoft は、従来の API を使用する既存のコードを、可能であれば新しい API を使用するように書き直すよう提案しています。]

リーダー オブジェクトは、メディア ファイルからデータ サンプルを読み取ります。 リーダー オブジェクトは現在、高度なシステム形式 (ASF) ファイル構造と MP3 ファイルを使用するファイルをサポートしています。 リーダー オブジェクトによって配信されるデータは圧縮されず、既定ではレンダリングの準備が整っていますが、必要に応じて解凍せずにサンプルを配信できます。 サンプルはリーダー オブジェクトから非同期的に配信されます。それらを受信するには、コールバック関数を設定する必要があります。 ASF ファイルの同期再生には、同期リーダー オブジェクトを使用します。 リーダーと同期リーダーはどちらもデータをレンダリングしません。 ファイルから取得したメディアを表示するには、独自のレンダリング ルーチンを指定する必要があります。

リーダー オブジェクトでサポートされているコーデックでデコードできるエンコードされたメディアがファイルに含まれている場合は、圧縮されていない出力の形式を制御できます。 ストリームの圧縮解除された出力の形式を変更するには、そのストリームの既定の出力メディア プロパティ オブジェクトを取得し、変更を加えて、リーダー内のストリームに再割り当てする必要があります。 出力メディア プロパティ オブジェクトはリーダー オブジェクトに従属し、 IWMReader::GetOutputProps メソッドを使用してのみ作成する必要があります。

リーダー オブジェクトは、IWMReader インターフェイスへのポインターを設定する関数 WMCreateReader によって作成されます。 リーダー オブジェクトの他のインターフェイスは、 QueryInterface メソッドを呼び出すことで取得できます。

リーダー オブジェクトでは、次のインターフェイスがサポートされています。

インターフェイス 説明
IReferenceClock リーダーによって使用されるシステム クロックへのアクセスを提供します。
IWMDRMReader ライセンス取得、 DRM プロパティ、およびクライアントの個別化を管理します。
IWMDRMReader2 出力保護レベル (OPL) を使用して権限を指定するライセンスへのアクセスを提供します。
IWMHeaderInfo メタデータ、 マーカー、スクリプト データなどのヘッダー情報を設定および取得します。
IWMHeaderInfo2 ファイル内のコンテンツのエンコードに使用されたコーデックに関する情報を取得します。 IWMHeaderInfo のすべてのメソッドを継承します。
IWMHeaderInfo3 大きな属性サイズ、重複する属性名、および複数の言語のサポートをサポートします。 IWMHeaderInfo および IWMHeaderInfo2 のすべてのメソッドを継承します。
IWMPacketSize リーダーに読み込まれたファイル内の最大パケットのサイズを取得します。
IWMPacketSize2 リーダーに読み込まれたファイル内の最小パケットのサイズを取得します。
IWMProfile リーダーに読み込まれたファイルのプロファイル情報へのアクセスを提供します。
IWMProfile2 プロファイルに関連付けられているグローバル一意識別子 (GUID) (存在する場合) を取得します。 IWMProfile のすべてのメソッドを継承します。
IWMProfile3 プロファイル内の帯域幅共有とストリームの優先順位付け情報をサポートします。 IWMProfile と IWMProfile2 のすべてのメソッド継承します。
IWMReader 開く、閉じる、開始、一時停止、再開、停止、出力プロパティの取得と設定などの操作を含む、基本的なファイル読み取り機能を提供します。
IWMReaderAccelerator DirectX ビデオ アクセラレーションと通信します。
IWMReaderAdvanced ユーザー指定のクロック、バッファー割り当て、戻り値統計、ストリーム選択通知など、リーダーの高度な機能を提供します。
IWMReaderAdvanced2 既存のリーダー オブジェクトに対して追加の高度なメソッドの範囲を提供します。 IWMReaderAdvanced のすべてのメソッドを継承します。
IWMReaderAdvanced3 高度なシークとストリーミングの制御を提供します。 IWMReaderAdvanced および IWMReaderAdvanced2 のすべてのメソッドを継承します。
IWMReaderAdvanced4 複数の言語サポートを含む高度なリーダー オプションを提供します。 IWMReaderAdvanced、IWMReaderAdvanced2および IWMReaderAdvanced3 のすべてのメソッドを継承します。
IWMReaderNetworkConfig ネットワーク構成設定を制御します。
IWMReaderNetworkConfig2 高度なネットワーク構成設定へのアクセスを提供します。 IWMReaderNetworkConfig のすべてのメソッドを継承します。
IWMReaderStreamClock ストリーム クロックのタイマーを設定および取り消し、指定したストリーム クロックの現在の値を取得します。
IWMReaderTimecode リーダーに読み込まれたファイル内の SMPTE 時間コード範囲に関する情報を提供します。
IWMReaderTypeNegotiation ストリームの出力プロパティに対する変更が正しく機能しているかどうかをテストします。

 

リーダー オブジェクトの進行状況を追跡するために、次のコールバック インターフェイスをアプリケーションに実装できます。

インターフェイス 説明
IWMCredentialCallback ユーザーの資格情報を取得し、リモート サイトにアクセスするためのアクセス許可があることを確認します。
IWMReaderAllocatorEx IWMReaderCallbackAdvanced インターフェイスの AllocateForOutput メソッドと AllocateForStream メソッドの拡張された代替手段を提供します。
IWMReaderCallback IWMReaderStart メソッドと Open メソッドのコールバック メソッドを提供します。
IWMReaderCallbackAdvanced IWMReaderAdvanced インターフェイスのメソッドのコールバック メソッドを提供します。
IWMStatusCallback 状態情報をホスト アプリケーションに伝達する必要がある場合に必要です。

 

オブジェクト

ASF ファイルの読み取り

同期リーダー オブジェクト