提取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 )
就这么简单,技术、方法都很初级,但自力更生的感觉还是很美妙的。 ^_^
好了,从分析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 )
就这么简单,技术、方法都很初级,但自力更生的感觉还是很美妙的。 ^_^
相关文章推荐
- C#WindowsMediaPlayer的播放列表
- AxWindowsMediaPlayer创建、添加播放列表(C#)---媒体播放器
- C#自动播放下一首歌曲(windowsmediaPlayer)
- AxWindowsMediaPlayer创建、添加播放列表(C#)
- js 控制 Windows Media Player播放列表
- Windows Media Player 无法播放
- 解决烦人的Windows Media Player(web嵌入) 不能自动播放
- 各种格式的视频播放的代码(Windows Media Player 系列(不同面板样式))
- 装完Windows Media Player 11后PPlive不能播放,以及Windows Media Player 11不能卸载的问题
- c# winform 利用 windows media player 循环播放视频
- Windows Media Player 播放.WMV文件破解许可证
- C#调用WindowsMediaPlayer控件实现音乐播放(一)
- C#使用Windows Media Player播放音频文件
- windows media player 播放视频
- axWindowsMediaPlayer控件循环播放方法
- VS2010MFC对话框程序中使用Windows Media Player播放音频或视频文件
- Windows Media Player 11不能播放网络流媒体wmv问题的解决
- C#播放声音的四种方法 +AxWindowsMediaPlayer的详细用法
- 在页面上用Windows Media Player和RealPlayer播放器播放电影的html代码
- Windows Media Player 无法播放此文件,因为不支持指定的协议,解决方法!