属性値の読み取り

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

ライブラリと Windows Media ファイルで見つけることができる属性には、定義済みの名前があります。 その属性の名前を Media に渡すことで、1 つの属性の値を取得するコードを記述できます。getItemInfo または MediagetItemInfoByType。 ファイルまたは項目内のすべての属性の値を取得するコードを記述することもできます。

次の C# の例では、 Title 属性の値を取得し、メッセージ ボックスに表示します。 この例では、 Player オブジェクトは axWMPLib.AxWindowsMediaPlayer Player として定義されています。

IWMPMedia media;
string strAttribValue = "";

// Initialize the media object
media = Player.currentMedia;

// Retrieve the object's Title attribute
strAttribValue = media.getItemInfo("Title");

// Display the title
if (strAttribValue != "")
{
    MessageBox.Show("Current title: " + strAttribValue);
}

getItemInfoByType の呼び出しでは、2 番目のパラメーターは言語を指定する文字列です。 この例に示すように空の文字列を渡すと、メソッドは既定の言語で値を取得します。 3 番目のパラメーターの詳細については、「 複数の値を持つ属性」を参照してください。

次の C# の例では、現在のメディア項目の特定の属性の値を取得します。 これらの値は、セミコロンで区切られた文字列として返されます。 WM/Lyrics_Synchronised、WM/Picture、WM/UserWebURL などのオブジェクトとして表される属性の場合、関数は空の文字列を返します。

private string getAttributeValues(string strAttrName, IWMPMedia3 media)
{
    string strAttrValue = "";
    int iAttrCount = 0;

    if (media != null)
    {
        // Retrieve the count of values for this attribute
        iAttrCount = media.getAttributeCountByType(strAttrName, "");

        // Retrieve the values
        for (int i = 0; i < iAttrCount; i++)
        {
            strAttrValue += media.getItemInfoByType(strAttrName, "", i);
            strAttrValue += ";";
        }
    }

    // Return the resulting string
    return strAttrValue;
}

getItemInfoByType メソッドに渡される 3 番目の引数は、同じ名前の属性セット内の特定の属性のインデックスです。

同様のコードを使用して、一意の名前を持つ属性を取得できます。 このような場合、 getAttributeCountByType は 1 を返します。 前に示した例では、 getItemInfoByType の呼び出しは 1 回だけ実行されます。

属性値の変更

メディア アイテムの属性

Media オブジェクト

CD または DVD からの属性値の読み取り