2015-04-02 3 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», не знаю, намеренно ли это. –

+0

Пожалуйста, пропустите это: http://stackoverflow.com/questions/16702659/play-a-sound-while-key-is-down –

+0

Вы уверены в пути к файлу wav или имеете достаточные права доступа этот каталог? – EZI

ответ

0

Вы можете попробовать инициализировать и/или закодировать экземпляр SoundPlayer в событии KeyDown, а затем остановить его в событии 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.

Смежные вопросы