2015-04-02 356 views
0

只要按下按钮,我就想让播放器播放声音。按按钮播放声音

以下是我迄今所做的:

public partial class Form1 : Form 
{ 
    private SoundPlayer soundPlayer; 

    private void FormMain_KeyPress(object sender, KeyPressEventArgs e)   
    { 
     if(e.KeyChar == 'n') 
     { 
      SoundPlayer s = new SoundPlayer(@"C:\Users\darude_rig\Desktop\dayz sounboard\media\sounds\AKM.wav"); 
      s.PlayLooping(); 
     } 
    } 
} 

问题出在哪里以及如何解决呢?

+0

您是否遇到错误或者什么都没有发生?你确定文件路径是正确的吗? “dayz sounboard”缺少一个“d”,不知道这是否是故意的。 – 2015-04-02 20:07:36

+0

请将此事列出来:http://stackoverflow.com/questions/16702659/play-a-sound-while-key-is-down – 2015-04-02 20:08:31

+0

你确定wav文件的路径,或者你有足够的权限访问那个目录? – EZI 2015-04-02 20:09:34

回答

0

您可以尝试在KeyDown事件中初始化和/或循环SoundPlayer实例,然后在KeyUp事件中停止它。

public partial class Form1 : Form 
{ 
    private SoundPlayer soundPlayer; 

    private void FormMain_KeyDown(object sender, KeyEventArgs e)   
    { 
     if(e.KeyCode == Keys.N) 
     { 
      if (soundPlayer == null) 
       soundPlayer = new SoundPlayer(@"C:\Users\darude_rig\Desktop\dayz sounboard\media\sounds\AKM.wav"); 

      soundPlayer.PlayLooping(); 
     } 
    } 

    private void FormMain_KeyUp(object sender, KeyEventArgs e)   
    { 
     if(e.KeyCode == Keys.N) 
     { 
      if (soundPlayer != null) 
       soundPlayer.Stop(); 
     } 
    } 
} 

请记住在某处订阅表单KeyUp和KeyDown事件。