/* iアプリ, MIDP でのサウンド Time-stamp: "2004/11/10 Wed 22:43 hig" Saburo Higuchi 2003 http://www.math.ryukoku.ac.jp/~hig/ プログラム解説等 http://sparrow.math.ryukoku.ac.jp/~hig/course/juniors_2003/08/ */ #if DOJA import com.nttdocomo.ui.*; #elif MIDP import javax.microedition.midlet.*; import javax.microedition.lcdui.*; import com.jblend.media.smaf.phrase.*; // SMAF/Phrase サウンドを使う #endif #if DOJA #elif MIDP #else // DoJa/MIDP Builder を使われる方へ: // まず, プログラムの先頭で, #define DOJA // などと定義する必要があります. // 以下の define 文は, #if - #endif の中に書かれていますので, // DoJa/MIDP Builder のプリプロセッサでは処理できません. // そこで, #if - #endif はやめて, // いらない方をJava の意味でコメント文にしてください. #endif #if DOJA #define MYALIGN +0 #define MYAP IApplication #define MYSTART start #define MYBLACK Graphics.getColorOfName(Graphics.BLACK) #define MYWHITE Graphics.getColorOfName(Graphics.WHITE) #define MYBLUE Graphics.getColorOfName(Graphics.BLUE) #define MYRED Graphics.getColorOfName(Graphics.RED) #define MYGREEN Graphics.getColorOfName(Graphics.GREEN) #define MYYELLOW Graphics.getColorOfName(Graphics.YELLOW) #define MYMAGENTA Graphics.getColorOfName(Graphics.MAROON) #define MYCYAN Graphics.getColorOfName(Graphics.AQUA) #define MYDIALOG Dialog #define MYLABEL Label #define MYADD add #define MYTEXT Text #elif MIDP #define MYALIGN ,Graphics.LEFT|Graphics.BOTTOM #define MYAP MIDlet #define MYSTART startApp #define MYBLACK 0 #define MYWHITE ( (255<<16) + (255<<8) + (255)) #define MYBLUE ( (0<<16) + (0<<8) + (255)) #define MYRED ( (255<<16) + (0<<8) + (0)) #define MYGREEN ( (0<<16) + (255<<8) + (0)) #define MYYELLOW ( (255<<16) + (255<<8) + (0)) #define MYMAGENTA ( (255<<16) + (0<<8) + (255)) #define MYCYAN ( (0<<16) + (255<<8) + (255)) #define MYDIALOG Alert #define MYLABEL StringItem #define MYADD append #define MYTEXT String #endif /** IApplication または MIDlet を継承するクラス */ public class SoundSample extends MYAP { /** 起動するときに呼ばれる メソッド. 必須. */ #if DOJA public void start(){ SoundCanvas cc=new SoundCanvas(this); Display.setCurrent(cc); } #elif MIDP public void startApp(){ SoundCanvas cc = new SoundCanvas(this); Display.getDisplay(this).setCurrent(cc); } public void pauseApp(){} public void destroyApp(boolean unconditional){} #endif } class SoundCanvas extends Canvas #if DOJA #elif MIDP implements PhraseTrackListener #endif { MYAP parent; String message="012を押してね"; final int nfile=3; String [] filename; int initial=1; #if DOJA MediaSound [] ms; AudioPresenter ap; boolean onEmulator=true; #elif MIDP Phrase [] ms; PhraseTrack [] tr; PhrasePlayer ap; #endif SoundCanvas(MYAP parent){ this.parent=parent; #if DOJA ap=AudioPresenter.getAudioPresenter(); ms = new MediaSound[nfile]; #elif MIDP ap= PhrasePlayer.getPlayer(); ms = new Phrase[nfile]; tr = new PhraseTrack[nfile]; #endif // サウンドファイルの読み込み filename = new String [nfile]; #if DOJA if ( onEmulator ){ // DoJa 3.5(FOMA 900i)以降ではここをtrueにしてよい. filename[0]="nozomi.mid"; filename[1]="hikari.mid"; filename[2]="hikaritotyu.mid"; } else { filename[0]="nozomi.mld"; filename[1]="hikari.mld"; filename[2]="hikaritotyu.mld"; } for(int i=0; i< nfile ; i++){ ms[i]=MediaManager.getSound("resource:///" + filename[i] ); } try{ for(int i=0; i< nfile ; i++){ ms[i].use(); } } catch (Exception e){ } #elif MIDP filename[0]="jb2001.spf"; filename[1]="jse103.spf"; filename[2]="jse2107.spf"; try { for(int i=0; i