如何在 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"));

我在名称中获取歌曲的标题,但我必须获取歌曲的名称。请向我建议解决方案。

如何在 c# 中使用 getItemInfo() 获取 xml 文件中的歌曲名称而不是标题

属性中的 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") 
        )); 
}