您的位置:首页 > 其它

提取Windows Media Player播放列表中的歌曲

2004-08-26 12:56 399 查看
前些日子买了个mp3,听着挺过瘾。在电脑上我都是用Windows Media Player播放歌曲,还把比较喜欢的“精选金曲”添加到了播放列表中。但想把播放列表中的歌曲拷到mp3里的时候却遇到了困难:列表中的歌曲分散在几十个专辑目录中,一个目录一个目录的找岂不要累死,这种重复性的机械劳动可是我最讨厌的了!好在咱还会写两行代码,看能不能用程序把这些歌曲提取出来。

好了,从分析Windows Media Player的播放列表入手。在Windows Media Player的音乐存储目录下我发现了一个“My Playlists”目录,里面有若干个.wpl文件。不管三七二十一,用记事本打开看看。结构如下:

<?wpl version="1.0"?>
<smil>
<head>
<meta name="Generator" content="Microsoft Windows Media Player -- 9.0.0.3128"/>
<author/>
<title>yFavorite</title>
</head>
<body>
<seq>
<media src="..\MovieMusic03\My Sassy Girl(我的野蛮女友)\02.I Believe.mp3" tid="{D5B723B4-A11F-4DE9-86C4-58A5803BE024}"/>
<media src="..\MovieMusic03\My Sassy Girl(我的野蛮女友)\17.Episode 4 (Reg Time).mp3" tid="{79DE022B-0E10-464B-8E00-10FD3D200E1C}"/>
<media src="..\MovieMusic04\天空の城\时间の城.mp3" tid="{D01404B4-0DB7-444E-AA06-28716F740D78}"/>
...(后面省略)

呵呵,这差不多就是xml文件啊,播放列表中所有歌曲的名字和路径都在里面,好办。

思路:把.wpl文件中从第二行开始的信息作为xml片断获得后,提取<media>节点的“src”属性值,再转换为绝对路径,然后复制到目标目录里。

设计界面如下:

private void CopySongsWithDoc( string wplFileName, string destDir )

private string RelativePathToAbsolutePath( string relativePath, string currentDir )

private string GetXmlFragment( string wplFileName )

就这么简单,技术、方法都很初级,但自力更生的感觉还是很美妙的。 ^_^
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: