2016-08-23 2 views
-2

드럼 애플릿을 만들려고합니다. 드럼의 모든 부분에는 키보드의 해당 키가 있으며이를 누르면 사운드가 재생됩니다. 키를 사용하여 사운드를 재생하려면 어떻게해야합니까?특정 키를 눌렀을 때 사운드를 재생하는 방법은 무엇입니까?

+4

Java로 코딩하고 코드화하는 방법을 배우는 것으로 학습합니다. 만약 당신이 "좀 새로운 자바"라면, "간단한 드럼 애플릿"이 당신의 리그에서 탈출하는 길입니다. 또한 애플릿은 더 이상 지원되지 않습니다. 기본 자바 학습에 중점을두고 그 후에 기술과 프레임 워크는 아직 나오지 않습니다. – Stultuske

+0

좋아요. 그렇다면 기본 자바를 사용하여 가능하게 할 수있는 방법이 있습니까? 최소한 샘플 코드부터 시작하십시오. – Krain45

+0

기본 자바를 배우면, 그렇지 않으면 만들 수 있습니다. 그렇지 않으면 – Stultuske

답변

0

오케이. 따라서 다른 드럼 킷 사운드의 샘플이 필요합니다. 킥, 스네어, 하이햇, 충돌 등 .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

자바 배우기. 그러나 애플릿을 배우기 전에 다음 내용을 읽고 싶을 것입니다 : [CS 교사가 Java 애플릿을 가르치는 것을 중단해야하는 이유] (http://programmers.blogoverflow.com/2013/05/why-cs-teachers-should-stop-teaching -java-applets /) – progyammer

관련 문제