Kamis, 15 Januari 2015

TUTORIAL-3
PEMBUATAN APLIKASI J2ME PLAYER MIDI 
MENGGUNAKAN MIDlet PADA NETBEANS


Untuk selanjutnya kita akan membuat player MIDI dengan menggunakan MIDlet, sehingga disini kita harus menggunakan coding murni.




1.  Kita awali dengan pembuatan project baru seperti pada video Tutorial-1 dengan nama PlayMidi.  Pada Hello Midlet hilangkan dicentangnya. Klik Next.


Gambar 1.

2.  Kemudian pada langkah selanjutnya Default Platform Selection, Emulator Platform pilih yang standart CLDC Oracle Java. (lihat gambar)
Klik Finish.

Gambar 2.
3.  Selanjutnya membuat paket dengan cara arahkan kursor pada Source Package kemudian klik kanan pilih New => Java Package.  
-   Beri nama sesuai selera (paketMidi). 
-   klik Finish.

 Gambar 3.

 4.  Arahkan kursor pada paket yang telah kita buat (pada paketMidi), 
-   Klik kanan pilih New
-   Klik pada MIDlet.
-   Beri nama (PlayMidi).
-   Klik Finish.
 Gambar 4.
 
Pada langkah ini kita sudah mempunyai MIDlet yang akan kita isi dengan source code untuk membuat form dan tombol perintah player dan stop.

5.  Klik 2 kali pada nama MIDlet (PlayMidi.java), tunggu sampai muncul halaman edit.
Gambar 5.

6.  Ganti tampilan Flow pada tampilan pada Source   

Gambar 6.

7.  Tambah fasilitas library yang kita butuhkan disediakan oleh java antara lain :

import java.io.IOException;
import javax.microedition.lcdui.*;
import javax.microedition.media.Manager;
import javax.microedition.media.MediaException;
import javax.microedition.media.Player;
import javax.microedition.midlet.MIDlet;

8.  Pada langkah berikutnya didalam public class PlayMidi kita tambahkan tulisan:
public class PlayMidi extends MIDlet implements CommandListener {

9.  Kemudian kita harus mendefinisikan hak access pada class yang kita buat :
Gambar 7.

Ketik :
     public Form form = new Form("AudioPlayer");
    private Command Play = new Command("Play",Command.SCREEN,1);
    private Command Stop = new Command("Stop",Command.SCREEN,0);
    private Command exitComm = new Command("Exit",Command.EXIT,1);
    private Player player;

10.  Pada Public kita berikan tombol perintah (Command) sbb:

    form.addCommand(Play);
    form.addCommand(Stop);
    form.addCommand(exitComm);
    form.setCommandListener(this);

variabel command Play = untuk membuat tombol perintah mainkan musik.
variabel command Stop = untuk membuat tombol perintah menghentikan musik.
variabel command exitComm = untuk membuat tombol perintah keluar dari aplikasi.


11.  Pada Public void commandAction kita ketik source code sbb:

Gambar 8.

        if (c == exitComm) {
            cleanUp();
            notifyDestroyed();
            return;
        }
        if (c == Play) {
            playMedia("/audio/Sakitnya_tuh_disini.mid");
            Display.getDisplay(this).setCurrent(form);
        }
        if (c == Stop) {
            cleanUp();
            Display.getDisplay(this).setCurrent(form);
        }
hal ini untuk menjalankan tombol perintah yang dipilih.

11. Membuat fungsi playMedia() perintah menjalankan musik  :

 
   public void playMedia(String locator){
        try{
  player = Manager.createPlayer(getClass().getResourceAsStream ("/audio/Sakitnya_tuh_disini.mid"),"audio/midi");
            player.realize();
            player.start();
        } catch (IOException ex) {
           
        } catch (MediaException ex) {
                   
        }
    }


12.  Membuat fungsi cleanUp() untuk perintah stop musik sbb:

       public void cleanUp(){
        if(player != null){
            player.close();
            player=null;
        }
    }

13. Laksanakan build program sampai tidak ada error dan BUILD SUCCESSFULL

14. Run program sampai muncul emulator seperti dibawah ini :



Source code lengkapnya sbb :
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package paketMidi;

import java.io.IOException;
import javax.microedition.lcdui.*;
import javax.microedition.media.Manager;
import javax.microedition.media.MediaException;
import javax.microedition.media.Player;
import javax.microedition.midlet.MIDlet;

/**
 * @author benpro
 */
public class PlayMidi extends MIDlet implements CommandListener{  
    //<editor-fold defaultstate="collapsed" desc=" Generated Fields ">                     
    //</editor-fold>                   
    /**
     * The PlayMidi constructor.
     */
    public Form form = new Form("AudioPlayer");
    private Command Play = new Command("Play",Command.SCREEN,1);
    private Command Stop = new Command("Stop",Command.SCREEN,0);
    private Command exitComm = new Command("Exit",Command.EXIT,1);
    private Player player;
 
    public PlayMidi() {
        form.addCommand(Play);
        form.addCommand(Stop);
        form.addCommand(exitComm);
        form.setCommandListener(this);           
    }

    //<editor-fold defaultstate="collapsed" desc=" Generated Methods ">                      
    //</editor-fold>                    
    //<editor-fold defaultstate="collapsed" desc=" Generated Method: initialize ">                                          
    /**
     * Initilizes the application.
     * It is called only once when the MIDlet is started. The method is called before the <code>startMIDlet</code> method.
     */
    private void initialize() {                                        
        // write pre-initialize user code here
                                          
        // write post-initialize user code here
    }                           
    //</editor-fold>                         

    //<editor-fold defaultstate="collapsed" desc=" Generated Method: startMIDlet ">                                       
    /**
     * Performs an action assigned to the Mobile Device - MIDlet Started point.
     */
    public void startMIDlet() {                                     
        // write pre-action user code here
                                       
        // write post-action user code here
    }                            
    //</editor-fold>                          

    //<editor-fold defaultstate="collapsed" desc=" Generated Method: resumeMIDlet ">                                        
    /**
     * Performs an action assigned to the Mobile Device - MIDlet Resumed point.
     */
    public void resumeMIDlet() {                                      
        // write pre-action user code here
                                        
        // write post-action user code here
    }                             
    //</editor-fold>                           

    //<editor-fold defaultstate="collapsed" desc=" Generated Method: switchDisplayable ">                                             
    /**
     * Switches a current displayable in a display. The <code>display</code> instance is taken from <code>getDisplay</code> method. This method is used by all actions in the design for switching displayable.
     * @param alert the Alert which is temporarily set to the display; if <code>null</code>, then <code>nextDisplayable</code> is set immediately
     * @param nextDisplayable the Displayable to be set
     */
    public void switchDisplayable(Alert alert, Displayable nextDisplayable) {                                           
        // write pre-switch user code here
        Display display = getDisplay();                                              
        if (alert == null) {
            display.setCurrent(nextDisplayable);
        } else {
            display.setCurrent(alert, nextDisplayable);
        }                                            
        // write post-switch user code here
    }                                  
    //</editor-fold>                                
   
    public Display getDisplay() {
        return Display.getDisplay(this);
    }

    public void exitMIDlet() {
        switchDisplayable(null, null);
        destroyApp(true);
        notifyDestroyed();
    }

    public void startApp() {
        Display.getDisplay(this).setCurrent(form);
    }

    public void pauseApp() {
      
    }
   
    public void destroyApp(boolean unconditional) {
    }
   
    public void commandAction(Command c, Displayable d) {
        if (c == exitComm) {
            cleanUp();
            notifyDestroyed();
            return;
        }
        if (c == Play) {
            playMedia("/audio/Sakitnya_tuh_disini.mid");
            Display.getDisplay(this).setCurrent(form);
        }
        if (c == Stop) {
            cleanUp();
            Display.getDisplay(this).setCurrent(form);
        }
    }
   
    public void cleanUp(){
        if(player != null){
            player.close();
            player=null;
        }
    }
  
    public void playMedia(String locator){
        try{
       player = Manager.createPlayer(getClass().getResourceAsStream ("/audio/Sakitnya_tuh_disini.mid"),"audio/midi");
            player.realize();
            player.start();
        } catch (IOException ex) {
           
        } catch (MediaException ex) {
                   
        }
    }
}




SEKIAN DAN TERIMA KASIH
WASSALAM



Tidak ada komentar:

Posting Komentar