【问题标题】:C# Media Player PlaylistC# 媒体播放器播放列表
【发布时间】:2019-09-26 11:10:16
【问题描述】:

我正在尝试用 C# 制作媒体播放器。我想制作一个包含歌曲名称和歌曲长度的播放列表。我试过的代码是:

private void BtnOpenFiles_Click(object sender, EventArgs e)
{
    OpenFileDialog openFileDialog = new OpenFileDialog();
    openFileDialog.Filter = "MP3 Audio File (*.mp3)|*.mp3|Windows Media File (*.wma)|*.wma|WAV Audio File (*.wav)|*.wav";
    openFileDialog.Multiselect = true;

    if(openFileDialog.ShowDialog()==DialogResult.OK)
    {
        files = openFileDialog.SafeFileNames;
        paths = openFileDialog.FileNames;

        for (int i = 0; i < files.Length; i++)
        {
            foreach (string track in paths)
            {
                WMPLib.IWMPMedia media = this.axWindowsMediaPlayer1.newMedia(track);
                length = media.durationString;
            }

            lstPlaylist.Items.Add(Path.GetFileNameWithoutExtension(files[i] + length));
        }
    }
}

但它显示所有歌曲的持续时间相同。

【问题讨论】:

  • 为什么你有两个 for 循环?
  • 我完全没有成功,所以我尝试了这种方式
  • How to debug small programs ... 因为即使是经验丰富的专业人士也会因为盯着几行代码太久而难过。

标签: c# windows-media-player


【解决方案1】:
private void BtnOpenFiles_Click(object sender, EventArgs e)
{
    OpenFileDialog openFileDialog = new OpenFileDialog();
    openFileDialog.Filter = "MP3 Audio File (*.mp3)|*.mp3|Windows Media File (*.wma)|*.wma|WAV Audio File (*.wav)|*.wav";
    openFileDialog.Multiselect = true;
    if(openFileDialog.ShowDialog() == DialogResult.OK)
    {
        paths = openFileDialog.FileNames;
        for (int i = 0; i < paths.Length; i++)
        {
            WMPLib.IWMPMedia media = this.axWindowsMediaPlayer1.newMedia(paths[i]);
            length = media.durationString;
            lstPlaylist.Items.Add(Path.GetFileNameWithoutExtension(paths[i] + length));
        }
    }
}

【讨论】:

  • 您的答案可能会从一些解释中受益,因为 OP 在阅读代码时显然难以理解程序流程和调试。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多