/* VアプリC4タイプでのサウンド Time-stamp: "2005/12/01 Thu 22:29 hig" Saburo Higuchi 2005 http://www.math.ryukoku.ac.jp/~hig/ プログラム解説等 http://www.a.math.ryukoku.ac.jp/~hig/course/juniors_2005/07/ */ #if DOJA #elif EZ #elif VF import javax.microedition.midlet.*; import javax.microedition.lcdui.*; //import com.jblend.media.smaf.phrase.*; // SMAF/Phrase サウンドを使う for P4 (J-PHONE-SDK) // C4 の場合 import com.j_phone.amuse.*; // SMAF/Phrase サウンドを使う for C4(V-appli_SDK_101) import java.io.*; // ByteStream を使う import javax.microedition.io.*; // Connector を使う /** IApplication または MIDlet を継承するクラス */ public class SoundSample extends MIDlet { /** 起動するときに呼ばれる メソッド. 必須. */ public void startApp(){ SoundCanvas cc = new SoundCanvas(this); Display.getDisplay(this).setCurrent(cc); } public void pauseApp(){} public void destroyApp(boolean unconditional){} } class SoundCanvas extends Canvas implements PhraseTrackListener { SoundCanvas parent; String message="123を押してね"; final int nfile=1; String [] filename; int initial=0; Phrase [] ms; PhraseTrack [] tr; PhrasePlayer ap; SoundCanvas(MIDlet parent){ this.parent=parent; ap= PhrasePlayer.getPlayer(); // サウンドファイルの読み込み filename = new String[nfile]; tr = new PhraseTrack[nfile]; ms = new Phrase[nfile]; // MA2/Phrase を使う. PCM (.mmf) である必要はない. filename[0]="jb2001.spf"; // filename[1]="jj22001.spf"; // filename[2]="jse2012.spf"; try { for(int i=0; i 0) { bout.write(bytes, 0, size); } bout.close(); in.close(); data = bout.toByteArray(); bout = null; return data; } catch(Exception e) { return null; } } public void paint(Graphics g){ g.setColor(( (255<<16) + (255<<8) + (255)) ); g.fillRect(0,0,getWidth(),getHeight()); // 画面を消す g.setColor(0 ); g.drawString(message,0,getHeight() ,Graphics.LEFT|Graphics.BOTTOM ); } /** ゲームアクション, キー が押されたとき */ protected synchronized void keyPressed(int keyCode){ if ( keyCode==KEY_NUM1 ){ tr[0].play(); message = "1キーが押された"; } else if ( keyCode==KEY_NUM2 ){ // tr[1].play(); message = "2キーが押された"; } else if ( keyCode==KEY_NUM3 ){ // tr[2].play(); message = "3キーが押された"; } repaint(); // paint メソッドを呼ぶ. } /** ゲームアクション, キー が離されたとき */ protected synchronized void keyReleased(int keyCode){ // これは検出しない. } /** ゲームアクション, キー が押されたままのとき */ protected synchronized void keyRepeated(int keyCode){ // これは検出しない. } public void eventOccurred(int event){ // 演奏終了などの処理 } } #endif /* Local Variables: mode: java End: */