【问题标题】:Media player play all files in listbox how?媒体播放器如何播放列表框中的所有文件?
【发布时间】:2013-04-19 07:48:43
【问题描述】:

我有一个列表框,其中包含所有必须播放的媒体文件。如何让媒体播放器一一播放? 此代码播放 1 首歌曲,但 foreach 应该播放所有文件,但我怀疑这是因为它不会等到媒体结束.. 这段代码:

Listbox = listBox3

listBox3Dict[s] = 列表框中所有文件的字符串

            Dictionary<string, string> listBox3Dict = new Dictionary<string, string>();

>         private bool listbox3job()
>         {
>             AxWMPLib.AxWindowsMediaPlayer axWmp = wfh.Child as AxWMPLib.AxWindowsMediaPlayer;
>                 {
>                     foreach (var selected in listBox3.Items)
>                     {
>                         string s = selected.ToString();
> 
>                         if (listBox3Dict.ContainsKey(s))
>                         {
WMPLib.IWMPPlaylist playlist = axWindowsMediaPlayer1.newPlaylist("myPlaylist", string.Empty);
                            // you can add songs to url on for loop 
                            WMPLib.IWMPMedia temp = this.axWindowsMediaPlayer1.newMedia(listBox3Dict[s]); //Load media from URL. 
                            playlist.appendItem(temp); //Add song to playlist.
                            // after you add all songs set the new playlist
                            this.axWindowsMediaPlayer1.settings.autoStart = true; //not necessary
                            this.axWindowsMediaPlayer1.currentPlaylist = playlist; //Set media player to use the playlist.
>                         }
>                     }
> 
>                 return true;
>             }
>             return false;
>         }

【问题讨论】:

    标签: c# wpf windows media-player


    【解决方案1】:

    您可以做的是创建播放器列表并开始播放该列表

    private bool listbox3job()
    {
    
        AxWMPLib.AxWindowsMediaPlayer axWmp = wfh.Child as AxWMPLib.AxWindowsMediaPlayer;
        WMPLib.IWMPPlaylist playlist = axWmp.newPlaylist("myPlaylist", string.Empty);
    
        foreach (var selected in listBox1.Items)
        {
            string s = selected.ToString();
            if (listBox3Dict.ContainsKey(s))
            {
                WMPLib.IWMPMedia temp = axWmp.newMedia(listBox3Dict[s]); //Load media from URL. 
                playlist.appendItem(temp); //Add song to playlist.
            }
        }
        axWmp.settings.autoStart = true; //not necessary
        axWmp.currentPlaylist = playlist; //Set media player to use the playlist.
        return true;
    }
    

    http://www.timwylie.com/playlist.html

    【讨论】:

    • 我不知道如何制作播放列表。也许你能帮帮我?
    • 感谢您的代码!但是好像IWMPPlaylis不存在?而且它也找不到名字“p”?
    • 你需要参考AxWMPLib和WMPLib
    • 首先。感谢您帮助我...我已经更改了代码,但它不会启动媒体!检查我更新的代码!
    • @Sneakybastardd 您为每首歌曲创建播放列表,查看我更新的答案,您需要有正确歌曲路径的列表框,例如C:\Users\Public\Music\Sample Music\Kalimba.mp3
    【解决方案2】:

    之前我正在处理列表中的一组语音文件。我使用了 PlayStateChange 事件。在此事件中,您可以找到 MediaEnded 状态,您可以在其中将播放文件重新分配给列表中的下一项。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-04
      相关资源
      最近更新 更多