z还算简单的吧.只是一些按钮发些音调,然后可以保存和播放啊》
熟息java做做应该不费多少时间的.

解决方案 »

  1.   

    只是调用一下javax.sound.midi API里的音符.
      

  2.   

    package applet1;
    import java.awt.*;
    import java.awt.event.*;
    import java.applet.*;
    import java.util.*;
    public class MyApplet extends Applet {
      private boolean isStandalone = false;
      Button startsave = new Button();
      Button stopsave = new Button();
      Button playsaved = new Button();
      private Keyboard key[];
      private AudioClip sound[];
      static AudioClip RECORD[];
      static int I=0;
      static boolean bStartsave=false;
      private boolean bStopsave=true;
      //Get a parameter value
      public String getParameter(String key, String def) {
        return isStandalone ? System.getProperty(key, def) :
          (getParameter(key) != null ? getParameter(key) : def);
      }  //Construct the applet
      public MyApplet() {
      }
      //Initialize the applet
      public void init() {
        try {
          jbInit();
        }
        catch(Exception e) {
          e.printStackTrace();
        }
    //    this.setLayout(null);
     //   width = this.size().width;
     //   height = this.size().height;
        key = new Keyboard[12];
        sound = new AudioClip[12];
        RECORD= new AudioClip[50];
        String s = new String("");    for(int i=0; i<12; i++)
        {
          s = i + ".au";
          System.out.println(s);
          sound[i] = getAudioClip(getCodeBase(),s);
        }
        key[0] = new Keyboard(Color.white,sound[0]);
        key[1] = new Keyboard(Color.black,sound[1]);
        key[2] = new Keyboard(Color.white,sound[2]);
        key[3] = new Keyboard(Color.black,sound[3]);
        key[4] = new Keyboard(Color.white,sound[4]);
        key[5] = new Keyboard(Color.white,sound[5]);
        key[6] = new Keyboard(Color.black,sound[6]);
        key[7] = new Keyboard(Color.white,sound[7]);
        key[8] = new Keyboard(Color.black,sound[8]);
        key[9] = new Keyboard(Color.white,sound[9]);
        key[10] = new Keyboard(Color.black,sound[10]);
        key[11] = new Keyboard(Color.white,sound[11]);
    // the black key
        key[1].setBounds(30,40,20,60);
        add(key[1]);
        key[3].setBounds(70,40,20,60);
        add(key[3]);
        key[6].setBounds(150,40,20,60);
        add(key[6]);
        key[8].setBounds(190,40,20,60);
        add(key[8]);
        key[10].setBounds(230,40,20,60);
        add(key[10]);
    //the black key
        key[0].setBounds(0,40,40,110);
        key[2].setBounds(40,40,40,110);
        key[4].setBounds(80,40,40,110);
        key[5].setBounds(120,40,40,110);
        key[7].setBounds(160,40,40,110);
        key[9].setBounds(200,40,40,110);
        key[11].setBounds(240,40,40,110);
        add(key[0]);
        add(key[2]);
        add(key[4]);
        add(key[5]);
        add(key[7]);
        add(key[9]);
        add(key[11]);
      }
    //methead to play the saved
      public void plays() {
        if (bStopsave==false||I==0)
            return;
        for(int j=0;j<I;j++)
           {
           RECORD[j].play();
           pause();
           }  }  //Component initialization
      private void jbInit() throws Exception {
        startsave.setLabel("start saving");
        startsave.setBounds(new Rectangle(60, 5, 91, 25));
        startsave.addActionListener(new MyApplet_startsave_actionAdapter(this));
        stopsave.setLabel("stop saving");
        stopsave.setBounds(new Rectangle(156, 5, 91, 25));
        stopsave.addActionListener(new MyApplet_stopsave_actionAdapter(this));
        playsaved.setLabel("play saved");
        playsaved.setBounds(new Rectangle(252, 5, 87, 25));
        playsaved.addActionListener(new MyApplet_playsaved_actionAdapter(this));
        this.setLayout(null);
        this.add(startsave, null);
        this.add(stopsave, null);
        this.add(playsaved, null);
      }
      //Get Applet information
      public String getAppletInfo() {
        return "Applet Information";
      }
      //Get parameter info
      public String[][] getParameterInfo() {
        return null;
      }
    //pause
      public void pause()
      {
        Date d=new Date();
        long t=d.getTime();
        while (t+350>d.getTime())
               {
               d=new Date();
        }
      }  void startsave_actionPerformed(ActionEvent e) {
        bStartsave=true;
        bStopsave=false;
        for(int j=0;j<I;j++)
          RECORD[I]=null;
        I=0;
      }  void stopsave_actionPerformed(ActionEvent e) {
        bStartsave=false;
        bStopsave=true;
          }  void playsaved_actionPerformed(ActionEvent e) {
        if (bStopsave==false||I==0)
          return;
        plays();
      }
    }class MyApplet_startsave_actionAdapter implements java.awt.event.ActionListener {
      MyApplet adaptee;  MyApplet_startsave_actionAdapter(MyApplet adaptee) {
        this.adaptee = adaptee;
      }
      public void actionPerformed(ActionEvent e) {
        adaptee.startsave_actionPerformed(e);
      }
    }class MyApplet_stopsave_actionAdapter implements java.awt.event.ActionListener {
      MyApplet adaptee;  MyApplet_stopsave_actionAdapter(MyApplet adaptee) {
        this.adaptee = adaptee;
      }
      public void actionPerformed(ActionEvent e) {
        adaptee.stopsave_actionPerformed(e);
      }
    }class MyApplet_playsaved_actionAdapter implements java.awt.event.ActionListener {
      MyApplet adaptee;  MyApplet_playsaved_actionAdapter(MyApplet adaptee) {
        this.adaptee = adaptee;
      }
      public void actionPerformed(ActionEvent e) {
        adaptee.playsaved_actionPerformed(e);
      }
    }
    //class Keyboard
    class Keyboard extends Canvas
    {
        Color keyColor = Color.white;
        AudioClip audio;
        int width,height;    Keyboard(Color c, AudioClip k)
        {
          keyColor = c;
          setBackground(keyColor);      audio = k;      width = this.getSize().width;
          height = this.getSize().height;
        }
        public boolean mouseDown(Event event, int x, int y)
        {
            audio.play();
            if(MyApplet.bStartsave==true)
              {
                MyApplet.RECORD[MyApplet.I]=audio;
                MyApplet.I++;
                return true;
              }
            else        return true;
        }    public void paint(Graphics g)
        {
          width = this.getSize().width;
          height = this.getSize().height;      g.setColor(Color.black);
          g.drawRect(0,0,width-1,height-1);    }
    }
    //class Keyboard
      

  3.   

    包括几个音乐的音符文件,要整体的包请发邮件给我
    [email protected]