播放列表和 MediaCollection 对象
[与此页面关联的功能(Windows 媒体播放器 SDK)是旧版功能。 它已被 MediaPlayer 取代。 MediaPlayer 已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用 MediaPlayer 而不是 Windows 媒体播放器 SDK。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]
MediaCollection 对象提供对各种特殊播放列表的访问权限,并包含用于从图元文件创建新播放列表的方法。
以下方法检索特殊播放列表:
- getAll
- getByAlbum
- getByAttribute
- getByAuthor
- getByGenre
- getByName
顾名思义,这些方法检索包含库中符合特定条件的所有媒体项的播放列表。
注意不要混淆 MediaCollection。具有 PlaylistCollection 的 getByName 方法。getByName 方法。 MediaCollection 方法返回一个 Playlist 对象,其中包含具有指定名称的所有媒体项。 PlaylistCollection 方法返回一个 PlaylistArray 对象,其中包含具有指定名称的所有播放列表。
可以使用 MediaCollection。add 方法,用于将播放列表以及媒体项添加到库中。 若要添加播放列表,请将 方法的路径传递给定义播放列表的图元文件。 方法始终返回 Media 对象。 不能在 Media 和 Playlist 对象之间强制转换。 若要使用添加的播放列表,请检索与 Media 对象同名的 Playlist 对象。
以下 C# 示例演示如何使用 MediaCollection 按类型检索媒体。getByAttribute 方法。 此代码检索与给定类型关联的所有属性的名称,以及这些属性的读/写或只读状态。 它生成一个文件,其中包含音频、视频、广播、播放列表、其他、音乐和照片类型的属性列表。
string strOutFile = "AttribList.txt"; // Name of the output file
...
StreamWriter sw = new StreamWriter(strOutFile, true);
sw.Write(getMediaCollectionNames("Audio"));
sw.Write(getMediaCollectionNames("Video"));
sw.Write(getMediaCollectionNames("Radio"));
sw.Write(getMediaCollectionNames("Playlist"));
sw.Write(getMediaCollectionNames("Other"));
sw.Write(getMediaCollectionNames("Music"));
sw.Write(getMediaCollectionNames("Photo"));
sw.Close();
...
// The getMediaCollection method retrieves the names of
// all attributes for a specified type.
private string getMediaCollectionNames(string sSchema)
{
IWMPPlaylist playlist;
IWMPMedia media;
string strResult = ""; // Cumulative list of attributes
string strAttrName = ""; // Attribute name
string strReadWrite = ""; // Read/Write status of attribute
int iAttrCount = 0; // Count of playlist attributes
// Retrieve a playlist corresponding to the requested type.
playlist = Player.mediaCollection.getByAttribute("MediaType", sSchema);
// Initialize the result string
strResult += "\n" + sSchema.ToString() + " Schema: \n";
// Retrieve the attributes for the playlist
if (playlist.count != 0)
{
media = playlist.get_Item(0);
iAttrCount = media.attributeCount;
for (int i = 0; i < iAttrCount; i++)
{
strAttrName = media.getAttributeName(i);
strResult += " " + strAttrName +"\n";
if (media.isReadOnlyItem(strAttrName))
strReadWrite = "Read Only";
else
strReadWrite = "Read/Write";
strResult += " " + strReadWrite + "\n";
}
}
return strResult;
}
以下 C# 示例演示如何将播放列表从图元文件添加到库。
// Add a playlist as a media item
IWMPMedia Media = Player.mediaCollection.add("c:\\testPlayList.asx");
静态播放列表包括特定的媒体项。 自动播放列表在每次打开时都会搜索库,并且在不同时间可能包含不同的媒体项。 可以使用 MediaCollection 将静态和自动播放列表添加到库中。add 方法。 还可以使用 PlaylistCollection 添加静态播放列表。importPlaylist 方法。
相关主题
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈