2013-02-24 42 views
2

我想開發一個在c#.net中使用Windows Media Player組件的媒體播放器。這是我可以製作播放列表並將歌曲添加到播放列表中的代碼,播放列表的名稱將顯示在名爲「playlistviewbar」的列表框中,然後我將此播放列表設置爲當前播放列表。如何創建和保存播放列表

但是當我運行該項目和當前plaulist設置它要求播放不匹配wich播放器的媒體。它表明它具有擴展名「。」但它無法播放的媒體

任何一個可以幫助我解決這個問題,還幫我保存播放列表..

WMPLib.IWMPPlaylist pl; 
public WMPLib.IWMPMedia files1,paths1; 
string playListName; 

    private void toolStripButton3_Click(object sender, EventArgs e) 
    { 
     if (listnametxt.Text == "") 
     { 
      playListName = "Untitled playlist"; 
     } 
     else 
     { 
      playListName = listnametxt.Text; 
     } 
     pl = axWindowsMediaPlayer1.playlistCollection.newPlaylist(playListName); 
     playlistviewbar.Items.Add(playListName); 

    } 

    private void toolStripButton2_Click(object sender, EventArgs e) 
    { 
     if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK) 
     { 
      string[] filestring=openFileDialog2.SafeFileNames; 
      string[] pathstring=openFileDialog2.FileNames; 
      for (int i = 0; i < filestring.Length; i++) 
      { 
      files1 = axWindowsMediaPlayer1.newMedia(filestring[i]); 
      paths1 = axWindowsMediaPlayer1.newMedia(pathstring[i]); 
      pl.appendItem(paths1); 
      axWindowsMediaPlayer1.currentPlaylist =pl; 
      } 


     } 
    } 

回答

3

這裏是爲我工作的代碼:

private void button1_Click(object sender, EventArgs e) 
     { 
      var pl = axWindowsMediaPlayer1.playlistCollection.newPlaylist("plList"); 
      pl.appendItem(axWindowsMediaPlayer1.newMedia(@"D:\nosazi.wmv")); 
      pl.appendItem(axWindowsMediaPlayer1.newMedia(@"D:\tasadof.mp4")); 

      axWindowsMediaPlayer1.currentPlaylist = pl; 
      axWindowsMediaPlayer1.Ctlcontrols.play();    
     } 
+0

使用此解決方案時,我發現播放列表中的下一個項目在前一個結束前播放2秒。然後再從頭開始打第二個。有什麼方法可以在播放列表中延遲播放下一個項目2-3秒? – 2016-01-11 02:14:57

+0

其實我知道有一些東西叫做交叉淡入淡出,如果你能找到一種方法來爲你的對象做這樣的設置,我認爲這是一個竅門。使用自己的播放器,你甚至可以設置時間重疊... – 2016-03-17 19:45:07