Senin, 15 Agustus 2011

Membuat Form Musik Di Netbeans


M U S I K


Dulu, java  mempunyai keterbatasan dalam memainkan musik. class Applet pada java hanya mampu memainkan 5 jenis suara saja yakni AU, AIF, RMF, MIDI dan WAV. Namun kini java mampu memainkan semua jenis musik dan video, melalui class JMF. Pada pembahasan kali ini, hanya akan dibahas kemampuan java dalam memainkan musik AU, AIF, RMF, MIDI dan WAV saja, mengingat class JMF perlu pembahasan yang lebih mendetail.

Class untuk menangani musik terdapat pada  :
  import java.applet.Applet; untuk memanggil  fungsi dari kelas Applet
  import java.applet.AudioClip ;   untuk memanggil fungsi dari kelas AudioClip
  import java.net.URL; untuk mendapatkan URL (path dari file) dan eksepsi dari URL tersebut.

Sebagai catatan, pada java.applet.Applet;  untuk menginisialisasi / meng-instace-kan musik dari suatu URL biasanya memakai:  Applet. newAudioClip(URL)

Method dari AudioClip adalah :
    play()              :  memainkan suara sekali saja
    loop()              :  memainkan suara berulang-ulang
    stop()              :  mematikan suara.

Contoh Aplikasi :
Terdapat Form dengan 1 TextField (eLokasi), 3 Button (bPlay, bBerulang  dan bStop) serta 1 label. Pada permainan/game, biasanya musik langsung dimainkan, ketika pertama kali form dijalankan, atau ketika suatu button ditekan. Form ini akan berperilaku sama, yakni ketika pertama kali dimainkan akan memainkan seubah file WAV secara berulang-ulang (looping). Ketika tombol Stop ditekan, musik akan berhenti.
Ketika TextField eLokasi diisi oleh suatu path file, lalu ditekan tombol Play1x (bPlay), atau tombol Berulang2x (bBerulang), maka musik akan terdengar kembali, sampai tombol Stop ditekan kembali.

Kelas utama dengan nama formMusik.java

/**

 *

 * @author SBU

 */

public class formMusik extends javax.swing.JFrame {






    /** Creates new form formMusik */

    public formMusik() {

        initComponents();

    }



    /** This method is called from within the constructor to

     * initialize the form.

     * WARNING: Do NOT modify this code. The content of this method is

     * always regenerated by the Form Editor.

     */

    @SuppressWarnings("unchecked")

    // <editor-fold defaultstate="collapsed" desc="Generated Code">

    private void initComponents() {



        jPanel1 = new javax.swing.JPanel();

        jLabel1 = new javax.swing.JLabel();

        txtFile = new javax.swing.JTextField();

        bStop = new javax.swing.JButton();

        bPlay = new javax.swing.JButton();

        bLoop = new javax.swing.JButton();



        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        setTitle("Form Musik");



        jPanel1.setBackground(new java.awt.Color(0, 102, 204));

        jPanel1.setLayout(null);



        jLabel1.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N

        jLabel1.setForeground(new java.awt.Color(255, 204, 0));

        jLabel1.setText("Lokasi dan Nama File :");

        jPanel1.add(jLabel1);

        jLabel1.setBounds(10, 10, 160, 20);

        jPanel1.add(txtFile);

        txtFile.setBounds(10, 30, 370, 20);



        bStop.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N

        bStop.setText("Stop");

        bStop.addActionListener(new java.awt.event.ActionListener() {

            public void actionPerformed(java.awt.event.ActionEvent evt) {

                bStopActionPerformed(evt);

            }

        });

        jPanel1.add(bStop);

        bStop.setBounds(10, 100, 370, 23);



        bPlay.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N

        bPlay.setText("Play");

        bPlay.addActionListener(new java.awt.event.ActionListener() {

            public void actionPerformed(java.awt.event.ActionEvent evt) {

                bPlayActionPerformed(evt);

            }

        });

        jPanel1.add(bPlay);

        bPlay.setBounds(10, 70, 180, 23);



        bLoop.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N

        bLoop.setText("Play Berulang");

        bLoop.addActionListener(new java.awt.event.ActionListener() {

            public void actionPerformed(java.awt.event.ActionEvent evt) {

                bLoopActionPerformed(evt);

            }

        });

        jPanel1.add(bLoop);

        bLoop.setBounds(200, 70, 180, 23);



        getContentPane().add(jPanel1, java.awt.BorderLayout.CENTER);



        java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();

        setBounds((screenSize.width-409)/2, (screenSize.height-174)/2, 409, 174);

    }// </editor-fold>



    private void bPlayActionPerformed(java.awt.event.ActionEvent evt) {


        cs.bunyi();

    }



    private void bLoopActionPerformed(java.awt.event.ActionEvent evt) {

        cs.ulang();

    }



    private void bStopActionPerformed(java.awt.event.ActionEvent evt) {

        cs.berhenti();

    }



    /**

    * @param args the command line arguments

    */

    public static void main(String args[]) {

        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {

                new formMusik().setVisible(true);

            }

        });

    }



    // Variables declaration - do not modify

    private javax.swing.JButton bLoop;

    private javax.swing.JButton bPlay;

    private javax.swing.JButton bStop;

    private javax.swing.JLabel jLabel1;

    private javax.swing.JPanel jPanel1;

    private javax.swing.JTextField txtFile;

    // End of variables declaration


}




Pembuatan class pemutar musik :


import java.applet.AudioClip;
import java.net.URL;
import javax.swing.JOptionPane;

/**
 *
 * @author SBU
 */
public class cariSuara {
    AudioClip sound;
    public cariSuara(String suara){
        try {
            fAudio = new URL(suara);
            sound = Applet.newAudioClip(fAudio);
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, "Suara di folder "+suara+" tidak ada...!!!");
        }
    }

    public void bunyi(){
        sound.play();
    }
    public void berhenti(){
        sound.stop();
    }
    public void ulang(){
        sound.loop();
    }
}

download file wordnya 

1 komentar:

G-RiNe mengatakan...

kalau caranya ngeload langsung lagunya dari project itu caranya gimana? , jadi gak usah search lagi file lagunya

Posting Komentar