【问题标题】:Playing a list of songs in combobox one by one in C#在C#中一首播放组合框中的歌曲列表
【发布时间】:2015-02-25 14:01:03
【问题描述】:

我有一个组合框中的歌曲列表。我正在根据用户的选择播放歌曲。这是我的代码。

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        wplayer.controls.pause();
        song = comboBox1.SelectedItem.ToString();
        index1 = comboBox1.SelectedIndex;
        pictureBox4.Image=Image.FromFile(Application.StartupPath + "\\Input\\zeneszek.gif");
        pictureBox4.SizeMode=PictureBoxSizeMode.StretchImage;
        pictureBox4.Visible=true;
         wplayer.PlayStateChange += new WMPLib._WMPOCXEvents_PlayStateChangeEventHandler(wplayer_PlayStateChange);
        wplayer.URL = Application.StartupPath + "\\Input\\" + song + ".mp3";
        wplayer.controls.play();
        WMPLib.WMPPlayState playstate = WMPLib.WMPPlayState.wmppsMediaEnded;
        label4.Text = "Playing" + song;
    }
 public void wplayer_PlayStateChange(int newstate)
        {
            if (newstate == (int)WMPLib.WMPPlayState.wmppsMediaEnded)
            {
                playstate = WMPLib.WMPPlayState.wmppsMediaEnded;
                song = comboBox1.Items[index1++].ToString();
}
}

歌曲结束后,我想播放下一首歌曲,即组合框选择中的下一首歌曲。有人可以帮忙吗?我也尝试了播放状态更改事件。我仍然无法播放下一首歌曲。当播放状态为 wmppsMediaEnded 时,我增加了组合框的索引。我什么时候需要播放那首歌?我尝试在状态为 wmppsStopped 和 wmmppsTransitioning 时播放这首歌,但在这两种情况下我只能连续播放两首歌曲。在第二首歌曲结束后,我无法播放剩余的歌曲。

【问题讨论】:

    标签: c# combobox


    【解决方案1】:

    使用 PlayStateChangeEvent 检查显示媒体已结束的新状态,然后移动 selectedindex + 1 并播放新歌曲。

    https://msdn.microsoft.com/en-us/library/windows/desktop/dd564079%28v=vs.85%29.aspx

    这也可能对你有所帮助:http://stereoclood.codeplex.com/SourceControl/latest#SteroMood/MediaPlayers/WmpMediaPlayer.cs

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-28
      相关资源
      最近更新 更多