当前位置: 首页 > 知识库问答 >
问题:

当一个文件结束后,如何自动播放列表中的下一个文件?

钱和安
2023-03-14
private void btnNext_Click(object sender, RoutedEventArgs e)
{
    if (listBox.SelectedIndex < listBox.Items.Count - 1)
    {
       listBox.SelectedIndex = listBox.SelectedIndex + 1;
       TagLib.File tagFile = TagLib.File.Create((listBox.SelectedValue).ToString());
       string album = tagFile.Tag.Album;
       string artist = tagFile.Tag.FirstAlbumArtist;
       string title = tagFile.Tag.Title;
       uint year = tagFile.Tag.Year;
       string genre = tagFile.Tag.FirstGenre;
       lblName.Content = artist + " - " + title;
       lblAlbum.Content = album;
       lblArtist.Content = artist;
       lblTitle.Content = title;
       lblYear.Content = year;
       lblGenre.Content = genre;
       lblBit.Content = tagFile.Properties.AudioBitrate + " kbps";
       lblTime2.Content = tagFile.Properties.Duration.ToString(@"mm\:ss");
       mediaPlayer.Open(new Uri((listBox.SelectedValue).ToString()));
       mediaPlayer.Play();
       btnPlay2.Visibility = Visibility.Hidden;
       btnPause.IsEnabled = true;
    } 
}
private void sliProgress_DragStarted(object sender, DragStartedEventArgs e)
{
    userIsDraggingSlider = true;
}

private void sliProgress_DragCompleted(object sender, DragCompletedEventArgs e)
{
    userIsDraggingSlider = false;
    mediaPlayer.Position = TimeSpan.FromSeconds(sliProgress.Value);
}

private void sliProgress_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
    lblTime.Content = TimeSpan.FromSeconds(sliProgress.Value).ToString(@"mm\:ss");
}
private void radioAll_Checked(object sender, RoutedEventArgs e)
    {
        if (lblTime.Content.ToString() == lblTime2.Content.ToString())
        {
            if (listBox.SelectedIndex < listBox.Items.Count - 1)
            {
                listBox.SelectedIndex = listBox.SelectedIndex + 1;
                TagLib.File tagFile = TagLib.File.Create((listBox.SelectedValue).ToString());
                string album = tagFile.Tag.Album;
                string artist = tagFile.Tag.FirstAlbumArtist;
                string title = tagFile.Tag.Title;
                uint year = tagFile.Tag.Year;
                string genre = tagFile.Tag.FirstGenre;
                lblName.Content = artist + " - " + title;
                lblAlbum.Content = album;
                lblArtist.Content = artist;
                lblTitle.Content = title;
                lblYear.Content = year;
                lblGenre.Content = genre;
                lblBit.Content = tagFile.Properties.AudioBitrate + " kbps";
                lblTime2.Content = tagFile.Properties.Duration.ToString(@"mm\:ss");
                mediaPlayer.Open(new Uri((listBox.SelectedValue).ToString()));
                mediaPlayer.Play();
            }
        }
    }

共有1个答案

裴兴言
2023-03-14

订阅MediaPlayer.MediaEnded事件并进行适当处理。

MSDN:

在媒体完成播放时发生

mediaPlayer.MediaEnded += OnMediaEnded;

mediaPlayer.Open(new Uri((listBox.SelectedValue).ToString()));
mediaPlayer.Play();
.
.
.

private void OnMediaEnded(object sender, EventArgs e) 
{
    // play next song
}    
 类似资料:
  • 我正在尝试使用gstreamer播放视频。我想不停地一个接一个地播放视频文件。我尝试了以下方法,但第二个文件没有播放。 $gst-launch-1.0合同名称=c!autovideosink文件rc location=“video0.mp4”!decodebin!c、 filesrc location=“video1.mp4”!decodebin!c 为什么第二个文件不能正确播放?

  • 我正在使用媒体播放器播放带有列表视图的原始文件夹中的音频文件。一切正常,但我有一个问题。 问题是:当第一个音频文件结束时,它播放第二个文件,但当第二个文件结束时,它不播放第三个文件。 问题是什么??我尝试在mp上添加setOnCompletionListener并重置mp并在(位置+1)中播放audion,这是真的吗? 我还有一个问题。当它结束播放listview中的第一个项目并开始播放第二个项目

  • 我正在学习如何为某些曲目创建媒体播放器的教程...每首歌都按我的要求播放然后停止...我想让整个播放列表播放...那是为了在前一个赛道结束后,下一个赛道自动开始... 多谢...

  • 目前正在开发一个网站,该网站将spotify播放列表及其URI嵌入如下:“https://embedd.spotify.com/?URI=spotify:playlist:4HyauylCBHW9se152noiy0”我想知道是否有一个自动播放参数允许播放列表在加载网页时自动播放? 最后,如果Spotify Web API不允许自动播放播放列表,其他人知道允许自动播放的平台吗?这篇文章提到了Sou

  • 我也在尝试用Python创建一个脚本来读取文本文件。在文本文件的每一行上,都有一个文件名。我希望脚本在文本文件的每一行中循环,并将带有文件名的文件从循环的当前行、从源文件夹移动到特定的目标。 希望这段代码能更准确地说明我在做什么: 我想把文件的内容和特定的文件名放到一个数组中,但是我有62700个可能的文件名,所以我想如果它只是在循环到每一行时移动文件,那么它会更有效率吗? 我还想到了使用迭代器(

  • 我通过一个qt designer程序创建了一个名为(first page)的简单文件,并在其中放置了一个名为(login)的按钮,我还使用相同的程序创建了另一个名为(second page)的简单文件 运行第一个文件并按下其中的按钮后,我想打开第二个文件,或者换句话说,我想将页面链接在一起。我怎么能这么做?。拜托我需要帮助。 第一个文件代码: 来自PyQt5。QtWidget导入QDialog,Q