ContentDistributor 属性の追加

[このページWindows メディア プレーヤー SDK に関連付けられている機能は、レガシ機能です。 MediaPlayer に置き換わりました。 MediaPlayer は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能な場合は SDK ではなく MediaPlayerWindows メディア プレーヤー使用することを強くお勧めします。 Microsoft は、従来の API を使用する既存のコードを、可能であれば新しい API を使用するように書き直すよう提案しています。]

ユーザーがオンライン ストアのコンテンツを再生したり、CD またはデバイスにコンテンツをコピーしたりしようとすると、Windows メディア プレーヤーは COM オブジェクト内の特定のメソッドを呼び出します。 これを行うには、プレーヤーは他のオンライン ストア プロバイダーとコンテンツを区別する方法が必要です。 オンライン ストア キー名を ContentDistributor ( WM/ContentDistributor という名前の Windows Media Format SDK 属性のエイリアス) 属性の値として Windows Media ベースのコンテンツに追加することで、Player がサービスに関連付けられているコンテンツを識別できるようにします。

ContentDistributor の値を追加すると、指定したコンテンツのノードがライブラリに作成Windows メディア プレーヤーも保証されます。 「 ライブラリ統合」を参照してください。

この値は、次の 2 つの方法で指定できます。

  • Windows メディア プレーヤー オブジェクト モデルを使用します。 これを行うと、指定した値Windows メディア プレーヤーライブラリ データベースに追加されます。 最終的には、プレーヤーも属性値をデジタル メディア ファイルに書き込みます。
  • プログラムで WM/ContentDistributor 属性を追加するには、Windows Media Format SDK を使用します。 これを行うと、Windows メディア プレーヤーは属性値を読み取り、デジタル メディア ファイルがライブラリに追加されたときにデータベースに追加します。

オンライン ストア COM オブジェクトを作成するときは、 ContentDistributor に設定したファイル属性値と、YourProject.h の定数 kszContentDistributorID に割り当てられた値が正確に一致する必要があります。 プロジェクト ウィザードを使用してプロジェクトを作成するときに、COM オブジェクトにこの定数値を指定したことを思い出してください。 この値は手動で変更できます。 必ず、サービスを一意に識別する文字列を使用してください。

Windows メディア プレーヤー オブジェクト モデルの使用

Windows メディア プレーヤー オブジェクト モデルを使用して ContentDistributor の値を指定するには、Media.setItemInfo メソッドを使用します。 次のコード例では、現在再生中のメディアアイテムの ContentDistributor の値 "Proseware" を指定します。

// Retrieve the current media item.
var theMedia = Player.currentMedia;

//Test whether the media item was retrieved.
if(theMedia)
{
    // Set the ContentDistributor value.
    theMedia.setItemInfo("ContentDistributor", "Proseware");
}

Windows Media Format SDK の使用

Windows メディア プレーヤー SDK には、SetContentDistributor.cpp という名前のサンプル C++ ファイルが含まれています。これは、Windows Media Format 9 Series SDK を使用して WM/ContentDistributor 属性を追加する方法を示しています。 このサンプル ファイルは、SDK をインストールした Metadata という名前のフォルダーにあります。 このコードを使用するには、次の手順に従う必要があります。

  1. Windows Media Format 9 Series SDK をインストールし、ドキュメントの説明に従ってランタイムを構成します。
  2. Visual Studio で新しい空の C++ プロジェクトを作成し、SetContentDistributor.cpp という名前のサンプル ファイルをプロジェクトに追加します。
  3. Windows Media Format 9 Series SDK Lib フォルダーへのパスをファイル パスの一覧に追加します。 [ツール] メニューの [オプション]をクリックします。
  4. [ オプション ] ダイアログ ボックスで、[ プロジェクト] をクリックし、[ VC++ ディレクトリ] をクリックします。
  5. [ ディレクトリの表示] ドロップダウン リスト ボックスで、[ ライブラリ ファイル] をクリックします。
  6. ボタンを使用して、リスト ボックスにパスを追加します。
  7. プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。 [ 構成プロパティ]、[ リンカー]、[ 入力] の順に選択します。 [ 追加の依存関係 ] テキスト ボックスに「wmvcore.lib」と入力します。

サンプル コードでは、コマンド ライン プログラムを作成します。 プログラムの実行時に指定する引数は、変更するデジタル メディア ファイルへのパスと ContentDistributor 属性値の文字列を指定します。 このコードでは 、IWMHeaderInfo::SetAttribute を使用して、指定したファイルに 属性を追加します。 このサンプルをそのまま使用することも、独自のプログラムの開始点として使用することもできます。

タイプ 1 およびタイプ 2 のオンライン ストアに共通する情報