研究テーマ->音楽ソフトの開発->携帯用アプリ開発->Softbank S!アプリ->同じファイルを連続して ループ再生する  
  携帯電話用アプリケーションの開発について紹介します。  
プロジェクトの作成
[New Project]ボタンをクリックして、新しいプロジェクトを作成します。「LoopPlay」という名前にします。ClassNameも「LoopPlay」にします。
新規作成でプロジェクト名とクラス名を入力した後に表示されるウィンドウで以下の事を設定してください。
API SelectionのページでCustomを選択し、MIDP 2.0 CLDC 1.1 を選択してください。
User Definedのページで、プロパティー名:MIDxlet-API、プロパティー値:JSCL-1.2.2を追加してください。
音楽ファイルの用意
resフォルダの下にsoundという名前のフォルダを作成します。拡張子がMMFの音楽ファイルを用意します。test.mmfという名前にしてそれを、soundフォルダの下におきます。
ソースコードの記述
LoopPlayというクラスをソースコードとして記述する必要があります。プロジェクト用の「LoopPlay」フォルダというのが何処かのフォルダ(おそらく\WTK25\apps)の下に出来ているはずですから、その下のsrcフォルダの下にソースコードを置かなければなりません。メモ帳で下記のようなプログラムを記述し、LoopPlay.javaという名前でsrcフォルダの下に保存します。
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import com.jblend.media.smaf.*;
import com.jblend.media.*;
import java.io.*;

public class LoopPlay extends MIDlet implements CommandListener, MediaPlayerListener {
    private Form tmpForm = new Form ("LoopPlay");
    private Command stopCmd = new Command("Stop",Command.SCREEN,1);
    private Command playCmd = new Command("Play",Command.SCREEN,2);
 
    SmafPlayer player=new SmafPlayer();
    SmafData sound;

    public LoopPlay() {
       tmpForm.addCommand(stopCmd);
       tmpForm.addCommand(playCmd);
       tmpForm.setCommandListener(this);
    }
    public void startApp() {
         try {    
            sound =new SmafData("sound/test.mmf");

          }catch(Exception e){
                 System.out.println(e.toString());
         }
         player.setData(sound);
 
         Display.getDisplay(this).setCurrent(tmpForm);
    }
    public void pauseApp() {
    }
    public void destroyApp(boolean flag){
    }
    public void commandAction(Command c, Displayable d){
        if (c.getLabel() == "Play") {
            player.play();
            player.addMediaPlayerListener(this);
        }
        else {
            player.removeMediaPlayerListener(this);
            player.stop();
        }
    }
    public void playerRepeated(MediaPlayer play) {
    }
    public void playerStateChanged(MediaPlayer play) {
        if (play.getState() == MediaPlayer.READY) { //停止中
            player.play();
        }
        if (play.getState() == MediaPlayer.ERROR) { //エラー発生により停止中
        }
    }

}
赤字の部分が、前の項目のソースコードから変化した部分です。
ビルドボタンを押してください。
エラーが表示されたら、何かが間違っています。
通常のシミュレータは使用できませんので[Run]ボタンは押さないでください。
メニューの[Project]->[Package]->[Create Package]を実行します。
エミュレータでの動作確認
S! Appli MEXA Emulator を起動して、エミュレータ上の電源ボタンをクリックします。決定ボタンをクリックします。「Install」が選ればれているはずなので、決定ボタンをクリックします。
LoopPlayフォルダのbinフォルダにあるjad ファイルを選択しインストールします。セキュリティのメッセージが表示されるのでOKをクリックします。「Yes」が選ばれているので、決定ボタンをクリックします。「OK」が選ばれているので、決定ボタンをクリックします。
上下キーで「Launch」 を選択し、決定ボタンを押します。 インストールしたプログラムがあるので上下キーで選択し、決定ボタンを押します。
以上の操作で、エミュレータ上で動き、Playボタンで音楽が演奏されるはずです。曲の最後まで行くと、最初に戻って再生を繰り返します。