首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何自动播放列表中的下一首歌曲

如何自动播放列表中的下一首歌曲
EN

Stack Overflow用户
提问于 2019-05-30 17:06:56
回答 1查看 1.2K关注 0票数 0

我在为我下载的歌曲制作一个音乐播放器。我让它播放我选择的歌曲,但我希望下一首歌在上一首结束后自动开始。

我尝试过使用PlayStateChange事件,但它似乎不起作用,当尝试调试(F11)时,它只是在歌曲结束后什么也不做。

代码语言:javascript
复制
private void lstSongs_SelectedIndexChanged(object sender, EventArgs e)
        {
            index = lstSongs.SelectedIndex;
            axWindowsMediaPlayer1.URL = paths[lstSongs.SelectedIndex];

        }

这是播放选定歌曲的代码。

代码语言:javascript
复制
void axWindowsMediaPlayer1_PlayStateChange()
        {
            index++;
            axWindowsMediaPlayer1.URL = paths[lstSongs.SelectedIndex];
        }

这是我最后一次尝试,但它只是没有执行那段代码

我以为它会转到清单上的下一首歌,我没有任何错误

EN

回答 1

Stack Overflow用户

发布于 2019-05-30 17:24:14

一种方法是为所有歌曲构建一个播放列表,而不是一个一个地播放它们,这样,播放列表中的下一首歌将在最后一首歌完成后自动播放:

代码语言:javascript
复制
WMPLib.IWMPPlaylist Playlist = axWindowsMediaPlayer1.newPlaylist("MyPlayList", "");
foreach(String song in lstSongs.Items)
{
    Playlist.appendItem(axWindowsMediaPlayer1.newMedia(song));
}
axWindowsMediaPlayer1.currentPlaylist = Playlist;
axWindowsMediaPlayer1.Ctlcontrols.play();

还不清楚您是否会在列表框中有多个选择,或者是否要播放列表框中的所有条目。

当当前播放的歌曲发生以下更改时,您可以获得它:

代码语言:javascript
复制
private void axWindowsMediaPlayer1_PlayStateChange(object sender, AxWMPLib._WMPOCXEvents_PlayStateChangeEvent e)
{
    if (e.newState == 3)
    {
        label1.Text = "Playing: " + axWindowsMediaPlayer1.Ctlcontrols.currentItem.name;
    }    
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56382652

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档