İçindekilerGirişİndex
YukarıİlkÖncekiSonrakiSon
Geriİleri
Yazdır
Zafer Teker
tekzaf@yahoo.com

Midletlerde AlertType Class'ı Kullanılarak Ses Çalınması

Giriş

Bu örnekte bir midlet'te AlertType class'ı kullanılarak ses çalınacaktır. MIDP 1.0 (Şu anda java destekleyen telefonların tamamı MIDP1.0'dır.) ses için bir destek içermez. Ses çalmak için cep telefonun modeline göre API'ler kullanmanız gerekir. Örneğin nokia'nın java api'si ses çalmaktadır. Ancak nokia api'sini kullanırsanız yaptığınız midlet diğer cep telefonlarında çalışmaz. MMAPI (Mobile Media API) ses ve video çalabilmeni sağlayan bir API'dir. Ancak çoğu telefon için bu API'yi kullanamazsınız. MIDP1.0 kullanarak ses çalabilmenin tek yolu AlertType class'ını kullanmaktır.

Beş tip müzik çalınabilir: ALARM,WARNING,INFO,ERROR,CONFIRMATION. Ancak bu seslerin çalınıp çalınaması cep telefonuna özgüdür. Bazı telefonlar hiç birini çalmaz. Bazıları sadece Alarm müziğini çalar. (Yukarıdaki kodu SonyEriccson ile denedim ve sadece ALARM müziği çalmıştır.) Bazı telefonlarda ise müzik çalınması sırasında program durdurulmaktadır. Örneğin oyun yapıyor ve oyunun içinde alarm müziği çalıyorsanız oyun durmaktadır. Ses bittiğinde tekrar devam etmektedir. Diğer bir sorunda stopSound gibi bir method'un olmamasıdır. Ve çalınan sesler telefonldan telefona değişeceği için çalınan sesin uygun olup olmadığını bilemezsiniz.

Göster Gizle Kopar Satır Gizle Satır Göster
  1 import javax.microedition.midlet.*;
  2 import javax.microedition.lcdui.*;
  3 public class SoundTestMIDlet extends MIDlet {
  4     public void startApp(){
  5         SoundCanvas canvas=new SoundCanvas(this);
  6         Display.getDisplay(this).setCurrent(canvas);        
  7     }    
  8     public void pauseApp(){}
  9     public void destroyApp(boolean unconditional){}
 10     public void alarm(){
 11         System.out.println("alarm");
 12         AlertType.ALARM.playSound(Display.getDisplay(this));
 13     }
 14     public void warning(){
 15         System.out.println("warning");        
 16         AlertType.WARNING.playSound(Display.getDisplay(this));        
 17     }
 18     public void info(){
 19         System.out.println("info");        
 20         AlertType.INFO.playSound(Display.getDisplay(this));                
 21     }
 22     public void error(){
 23         System.out.println("error");
 24         AlertType.ERROR.playSound(Display.getDisplay(this));                
 25     }    
 26     public void confirm(){
 27         System.out.println("confirm");        
 28         AlertType.CONFIRMATION.playSound(Display.getDisplay(this));                            
 29     }    
 30     class SoundCanvas extends Canvas implements CommandListener{
 31         private Command alarmCommand;
 32         private Command warningCommand;
 33         private Command infoCommand;
 34         private Command errorCommand;
 35         private Command confirmationCommand;
 36         SoundTestMIDlet midlet;
 37         public SoundCanvas(SoundTestMIDlet midlet){
 38             this.midlet=midlet;
 39             alarmCommand=new Command("Alarm",Command.SCREEN,1);
 40             warningCommand=new Command("Warning",Command.SCREEN,2);
 41             infoCommand=new Command("Info",Command.SCREEN,3);
 42             errorCommand=new Command("Error",Command.SCREEN,4);
 43             confirmationCommand=new Command("Confirmation",Command.SCREEN,5);            
 44             addCommand(alarmCommand);
 45             addCommand(warningCommand);
 46             addCommand(infoCommand);
 47             addCommand(errorCommand);
 48             addCommand(confirmationCommand);
 49             setCommandListener(this);            
 50         }
 51         public void paint(Graphics g){}
 52         public void commandAction(Command c, Displayable d){
 53             if(c==alarmCommand){
 54                 midlet.alarm();
 55             }else if(c==warningCommand){
 56                 midlet.warning();
 57              }else if(c==infoCommand){
 58                 midlet.info();
 59              }else if(c==errorCommand){
 60                 midlet.error();
 61               }else if(c==confirmationCommand){
 62                 midlet.confirm();
 63             }
 64         }        
 65     }
 66 }

AlertType class'ının static bir methodu olan playSound kullanılmaktadır. Yine bu class'ta 5 tane static AlertType değişkeni vardır. (ALARM,WARNING,INFO,ERROR,CONFIRMATION.) Bu örnekte her AlertType için bir command yarattık. Bu komutlar çalıştırılınca ses çalmaktadır.

Dosya Listesi

İçindekilerGirişİndex
YukarıİlkÖncekiSonrakiSon
Geriİleri
Yazdır