如何将多个文件添加到播放列表中

7

我有一个OpenFileDialog控件,其Multiselect = true。现在我想将每个文件添加到Windows Media Player播放列表中,但我不知道该如何做,而且互联网上也没有很好的例子。

if (ofdSong.ShowDialog() == DialogResult.OK)
{
    foreach (string file in ofdSong.FileNames)
    {
        //Code to add file to the playlist
    }
}

到目前为止,您已经有了一个可以打开对话框的代码,现在您需要一种方法来将所选文件保持/加载到歌曲播放列表List<string>中。例如,在winform上添加一个按钮,单击该按钮后添加上面的代码..您想要加载的文件扩展名是什么?此外,您还想添加一个暂停按钮和一个名为Play的按钮..因此,也许您可以展示或解释一下您想要实现的整体架构的更多细节。 - MethodMan
这个网站是一个很好的开始阅读的地方,http://msdn.microsoft.com/en-us/library/windows/desktop/dd564582%28v=vs.85%29.aspx - MethodMan
这个网站也是一个很好的起点,实际上这可能就是你的答案...如果不行的话,试着在谷歌上搜索,那里有大量的例子,相信我...这就是我找到你的这些例子的方法:http://stackoverflow.com/questions/694912/window-media-player-in-c-sharp - MethodMan
谢谢上次提供的链接,它帮了很大的忙。 - a1204773
2个回答

15

DJ KRAZE提供的示例链接和JayJay编写的示例的帮助下,这是解决方案。

WMPLib.IWMPPlaylist playlist = wmp.playlistCollection.newPlaylist("myplaylist");
WMPLib.IWMPMedia media;
if (ofdSong.ShowDialog() == DialogResult.OK)
{
    foreach (string file in ofdSong.FileNames)
    {
        media = wmp.newMedia(file);
        playlist.appendItem(media);
    }
}
wmp.currentPlaylist = playlist;
wmp.Ctlcontrols.play();

谢谢,这真的很有帮助。微软在命名函数和逻辑方面太愚蠢了。 - Tommix
wmp.playlistCollection.newPlaylist是哪个类?它为什么无法识别? - Ellis Thompson

1
private void openToolStripMenuItem_Click(object sender, EventArgs e)
{
  var myPlayList =  axWindowsMediaPlayer1.playlistCollection.newPlaylist("MyPlayList");
  OpenFileDialog open = new OpenFileDialog();
  open.Multiselect =true;
  open.Filter = "All Files|*.*";

  if(open.ShowDialog() == System.Windows.Forms.DialogResult.OK)
   {
     foreach(string file in open.FileNames)
       {
         var mediaItem = axWindowsMediaPlayer1.newMedia(file);
         myPlayList.appendItem(mediaItem);
       }
   }

  axWindowsMediaPlayer1.currentPlaylist = myPlayList;
 }

播放多个项目:复制粘贴并享受


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接