如何在 c# 中使用 getItemInfo() 获取 xml 文件中的歌曲名称而不是标题
本文关键字:标题 文件 获取 getItemInfo xml | 更新日期: 2023-09-27 18:31:47
我正在从c#.net为我的歌曲文件夹中的所有歌曲创建一个xml文件。我的代码如下:
Microsoft.MediaPlayer.Interop.IWMPMedia mediafilesinformation = plist.get_Item(i);
mediafilesinformation = obj_wmp.newMedia(filepath);
Filename = mediafilesinformation.getItemInfo("SourceURL");
Tracknumber = mediafilesinformation.getItemInfo("WM/TrackNumber");
Genre = mediafilesinformation.getItemInfo("WM/Genre");
Album = mediafilesinformation.getItemInfo("WM/AlbumTitle");
Artist = mediafilesinformation.getItemInfo("Artist");
Name = mediafilesinformation.getItemInfo("Name");
Duration = double.Parse(mediafilesinformation.getItemInfo("Duration"));
我在名称中获取歌曲的标题,但我必须获取歌曲的名称。请向我建议解决方案。
属性中的 Name 属性指向 文件名 如果需要,则可以使用文件路径字符串。
string fileName = Path.GetFileName(filepath);
您还可以打印出所有属性,调试它们并查看属性保留了哪些值。使用 Media.getAttributeName 方法。来自同一链接的示例如下:
// Store the current media object.
var cm = Player.currentMedia;
// Get the number of attributes for the current media.
var atCount = cm.attributeCount;
// Loop through the attribute list.
for(var i=0; i < atCount; i++){
// Print each attribute index and name.
myText.value += "Attribute " + i +": ";
myText.value += cm.getAttributeName(i);
myText.value += "'n";
}
遵循这些参考链接和代码片段。希望这个帮助
参考:获取音频或视频剪辑的持续时间,而无需实际播放剪辑
Microsoft.MediaPlayer.Interop.IWMPMedia m = Player.newMedia(fileName);
string currentArtist = m.getItemInfo("Author").Trim();
string currentAlbum = m.getItemInfo("Album").Trim();
string currentTitle = m.getItemInfo("Title").Trim();
double duration = m.duration;
参考: 链接
Microsoft.MediaPlayer.Interop.IWMPPlaylist plist;
plist = x.mediaCollection.getAll();
for(int i=0; i < plist.count;i++)
{
Microsoft.MediaPlayer.Interop.IWMPMedia elem = plist.get_Item(i);
Response.Write(string.Format("{1} - {2} - {3} - {4} - {5}
",
elem.sourceURL,
elem.name,
elem.getItemInfo("MediaType"),
elem.getItemInfo("FileType"),
elem.getItemInfo("WM/TrackNumber"),
elem.getItemInfo("Author"),
elem.getItemInfo("Title")
));
}