wav文件的播放/暂停按钮



我在这里和其他地方看到了一些关于多功能按钮的帖子,但是我在执行他们的建议时遇到了麻烦。

我正在编写一个生成并保存.wav文件的合成器。我有一个按钮,通过将声音保存到"bin",在SoundPlayer中"不保存"播放声音,然后我将其删除。我意识到这不是一种理想的播放声音的方式!

当点击按钮时,按钮标签从"播放"变为"停止"。不幸的是,我不能让按钮作为'停止'。

我尝试创建一个"计数器",

    public static int NumOfClicks = 0;

和做NumOfClicks++每次按钮被点击,然后if(IsEven(NumOfClicks)),但它给出了错误'IsEven不存在于这个上下文中'。

    private void btnPlay_Click_1(object sender, EventArgs e)
    {
        NumOfClicks++;                                      
        btnPlay.Text = "Stop";
           filePath = @"TestTone.wav";
           WaveGenerator wave = new WaveGenerator();
           wave.Save(filePath);
           SoundPlayer player = new SoundPlayer(filePath);
           player.Play();
         if (IsEven(NumOfClicks))
          {
                   btnPlay.Text = "Play";
                   player.Stop();
                   filePath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
                   File.Delete(@"TestTone.wav");
          }

        }

我尝试创建一个单独的"停止"按钮,但随后player. stop()命令不起作用(玩家"在此上下文中不存在")。

我尝试使用NumOfClicks开关,但得到相同的"播放器不存在于此上下文中"的错误。

如果有人有一个修复或更好的方法这样做,我会非常感激!

解决这个问题的一种方法是使用两个按钮。对于最初的开发,在开始/停止功能按您需要的方式工作之前,让它们在不同的位置都可见。

一旦这是固定的,你可以堆叠两个按钮,并设置他们的可见性标志,以设置哪一个显示,哪一个隐藏。

// WPF Sample Code
void buttonPlay_onClick()
{
   // Do something
   buttonPlay.Visible = Visibility.Visible;
   buttonStop.Visible = Visibility.Hidden;
}
void buttonStop_onClick()
{
   // Do something
   buttonPlay.Visible = Visibility.Visible;
   buttonStop.Visible = Visibility.Hidden;
}

如果你使用的是WinForms而不是WPF,你的可见性开关将使用这些命令。

   buttonPlay.Visible = true;
   buttonStop.Visible = false;

通过使用两个按钮,您可以控制何时可以单击每个按钮的状态,从而简化代码来处理单击,而不是试图跟踪单击次数或类似的操作。如果按钮是可见的/活动的,用户可以单击它并执行操作。

相关内容

  • 没有找到相关文章

最新更新