如何在按下特定键时播放声音?
How to play a sound when a specific key is pressed?
我正在尝试创建一个鼓小程序。所以鼓的每个部分在键盘上都有相应的键,如果你按下它,就会发出声音。如何使用按键播放声音?
好的。所以你需要不同架子鼓声音的样本,例如。 Kick、Snare、Hihat、crash 等。最好是 .wav
格式。所以你要做的就是使用 Event Handling
,当按下一个键时播放相应的音频。确保所有音频样本都在与当前项目相同的目录中。尽管编写代码并为您完成作业并不是这里要遵循的政策,但我会编写一个结构来向您解释这件事。
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class DrumApplet extends Applet implements KeyListener{
//declaring Audio variables
AudioClip kick, snare, hat_close, hat_opem, crash, tom;
@Override
public void init(){
kick = this.getAudioClip(getDocumentBase(), "kick.wav");
snare = this.getAudioClip(getDocumentBase(), "snare.wav");
//load all other audio samples
addKeyListener(this); //to detect the press of a key
}
@Override
public void paint(Graphics g){
//display message as to which key to press to play a sound
}
@Override
public void keyPressed(KeyEvent K){
char X = K.getKeyCode();
if(X == 'K')
kick.play(); //play kick.wav when K is pressed
if(X == 'S')
snare.play(); //play snare.wav when S is pressed
if(X == 'T')
tom.play(); //play tom.wav when T is pressed
if(X == 'O')
hat_open.play(); //play hat_open.wav when O is pressed
//write if statements for the rest of the Keys
repaint();
}
@Override
public void keyReleased(KeyEvent K){}
@Override
public void keyTyped(KeyEvent K){}
}
希望这能帮助您理解。
我正在尝试创建一个鼓小程序。所以鼓的每个部分在键盘上都有相应的键,如果你按下它,就会发出声音。如何使用按键播放声音?
好的。所以你需要不同架子鼓声音的样本,例如。 Kick、Snare、Hihat、crash 等。最好是 .wav
格式。所以你要做的就是使用 Event Handling
,当按下一个键时播放相应的音频。确保所有音频样本都在与当前项目相同的目录中。尽管编写代码并为您完成作业并不是这里要遵循的政策,但我会编写一个结构来向您解释这件事。
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class DrumApplet extends Applet implements KeyListener{
//declaring Audio variables
AudioClip kick, snare, hat_close, hat_opem, crash, tom;
@Override
public void init(){
kick = this.getAudioClip(getDocumentBase(), "kick.wav");
snare = this.getAudioClip(getDocumentBase(), "snare.wav");
//load all other audio samples
addKeyListener(this); //to detect the press of a key
}
@Override
public void paint(Graphics g){
//display message as to which key to press to play a sound
}
@Override
public void keyPressed(KeyEvent K){
char X = K.getKeyCode();
if(X == 'K')
kick.play(); //play kick.wav when K is pressed
if(X == 'S')
snare.play(); //play snare.wav when S is pressed
if(X == 'T')
tom.play(); //play tom.wav when T is pressed
if(X == 'O')
hat_open.play(); //play hat_open.wav when O is pressed
//write if statements for the rest of the Keys
repaint();
}
@Override
public void keyReleased(KeyEvent K){}
@Override
public void keyTyped(KeyEvent K){}
}
希望这能帮助您理解。