首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在本地级别停止SoundPlayer循环

在本地级别停止SoundPlayer循环
EN

Stack Overflow用户
提问于 2010-05-27 04:24:49
回答 3查看 2.2K关注 0票数 0

我正在设置一个闹钟,弹出一个对话框,有多个声音文件选项供用户选择。我遇到的问题是在本地创建一个声音播放器,我可以用一个按钮关闭它。我遇到的问题是,当我关闭窗体时,声音一直循环,因为按钮单击事件中不存在SoundPlayer。

这就是我所拥有的:

代码语言:javascript
复制
 void callsound()
    {
        if (SoundToggle == 0) // if sound enabled
        {

            if ((SoundFile == 0) && (File.Exists(@"attention.wav")))
            {
                System.Media.SoundPlayer alarm = new System.Media.SoundPlayer(@"attention.wav");
                alarm.PlayLooping();
            }
       if ((SoundFile == 1) && (File.Exists(@"aahh.wav")))
            {
                System.Media.SoundPlayer alarm = new System.Media.SoundPlayer(@"aahh.wav");
                alarm.PlayLooping();
            }
     }

private void button1_Click(object sender, EventArgs e)
    {
        //alarm.Stop();  Only works if SoundPlayer declared at class level
        this.Close();
    }

有没有一种方法可以通过声明我所在的SoundPlayer实例来做我想做的事情?或者,有没有一种方法可以在类级别声明它,并且仍然能够根据用户设置更改声音文件?

EN

回答 3

Stack Overflow用户

发布于 2010-05-27 05:22:06

为什么这是一个问题?无论如何,SoundPlayer不支持同时播放多个声音。将其移动到类作用域,覆盖OnFormClosing事件,问题就解决了。

代码语言:javascript
复制
public partial class Form1 : Form {
  private System.Media.SoundPlayer alarm;

  protected override void OnFormClosing(CancelEventArgs e) {
    if (alarm != null) alarm.Stop();
  }
}
票数 1
EN

Stack Overflow用户

发布于 2010-05-27 05:27:56

您可以尝试:

代码语言:javascript
复制
SoundMixer.stopAll();

代码语言:javascript
复制
SoundMixer.soundTransform = new SoundTransform(0);

SoundMixer类控制全局声音,因此它应该停止同一安全沙箱中的所有内容。

票数 0
EN

Stack Overflow用户

发布于 2017-10-06 00:55:43

使用Powershell时,我正在播放.wav文件,并使用以下命令开始了一个重复的循环:

代码语言:javascript
复制
$Playwav = new-object ('Media.SoundPlayer') $playpath1 
$Playwav.PlayLooping()

我通过运行部分(F8)停止了Powershell IDE中的循环:

代码语言:javascript
复制
$Playwav = new-object ('Media.SoundPlayer') $playpath1 
$Playwav.PlayLooping()
$Playwav.stop()

顺便说一句,我例子中的.wav是FPS Doug takethatbitch.wav.,所以这个失控的循环让我发笑。

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2916505

复制
相关文章

相似问题

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