2016-08-23 8 views
-2

Я пытаюсь создать барабанный апплет. Поэтому каждая часть барабана имеет соответствующие клавиши на клавиатуре, и если вы нажмете на нее, раздастся звук. Как играть звук с помощью клавиш?Как воспроизводить звук при нажатии определенной клавиши?

+4

, изучая код на Java и кодируйте его. Если вы «новичок в java», «простой барабанный апплет» - это выход из вашей лиги. Также: апплеты больше не поддерживаются. сосредоточиться на изучении базовой Java, и после этого перейдем к технологиям и фреймворкам, которые еще не выходят. – Stultuske

+0

Хорошо. Так можно ли каким-либо образом сделать это возможным, используя базовую java? По крайней мере, пример кода для начала. – Krain45

+0

изучите базовую Java, и вы сможете это сделать, иначе не – Stultuske

ответ

0

Хорошо. Таким образом, вам нужны образцы разных звуков ударных, например. 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){} 

} 

Надеюсь, это поможет вам разобраться.

+0

Большое спасибо! Это было очень полезно. – Krain45

+1

просто никогда не используйте это как серьезную ссылку. Апплет вместо JApplet ... означает, что этот код был приличным до появления Swing. – Stultuske

+0

Изучите Java. Однако перед изучением апплетов вы хотели бы прочитать следующее: [Почему учителя CS должны прекратить преподавать Java-апплеты] (http://programmers.blogoverflow.com/2013/05/why-cs-teachers-should-stop-teaching -java-апплеты /) – progyammer