【问题标题】:Trying to get my play button to work harmoniously with my pause button试图让我的播放按钮与我的暂停按钮和谐地工作
【发布时间】:2017-04-04 17:34:52
【问题描述】:

我已经开发 C# 音乐播放器几个月了,还没有使用内置的播放列表命令,现在回去做这些已经太晚了。我现在将此代码用于我的播放按钮(我们使用 openfiledialog 将音乐加载到列表框中):

private void Play_Click(object sender, EventArgs e)
    {
        WMPPlayer.URL = paths[filelist.SelectedIndex];
    }

这是我的暂停代码:

private void Pause_Click(object sender, EventArgs e)
    {
    WMPPlayer.Ctlcontrols.pause();
    }

没有计时器或进度条来判断它是否正在暂停,但它确实使音乐停止,所以它似乎正在工作。但是,当我点击播放之后,它会重新开始播放歌曲。我不确定如何在没有计时器的情况下保存歌曲的索引,然后让播放按钮检查歌曲的暂停位置。任何帮助将不胜感激。

【问题讨论】:

    标签: c# winforms


    【解决方案1】:

    您可以使用获取音频的当前位置

    double pausedPosition = WMPPlayer.Ctlcontrols.currentPosition
    

    在您当前的实现中,您在播放按钮中设置 URL。我相信这是可行的,因为默认行为是它在设置 URL 后立即开始播放 (WMPPlayer.settings.autoStart)。要获得更多控制权,您可以禁用它并将 Play 按钮中的代码更改为:

    WMPPlayer.URL = paths[filelist.SelectedIndex];
    WMPPlayer.Ctlcontrols.currentPosition = pausedPosition;
    WMPPlayer.Ctlcontrols.play();
    

    【讨论】:

    • 我会把那条线放在哪里? double pausedPosition = WMPPlayer.Ctlcontrols.currentPosition
    • 您可以将它放在与暂停它相同的方法中。如果他们正在加载新的音频文件,请确保您不加载 pausedPosition。检查当前 URL 是否与正在加载的新 URL 相同,然后才设置 pausedPosition。
    猜你喜欢
    • 2019-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-22
    • 2014-12-05
    • 1970-01-01
    • 2020-12-03
    相关资源
    最近更新 更多