0

eclipse の j2me MIDP2 で開発中のゲームで 2 つ以上のサウンド ファイルを再生すると問題が発生します。複数の "wav" サウンド ファイルを再生する最良の方法を教えてください。プログラムの起動時に一度呼び出される次のメソッドを作成しました

public void setSound()
        {
            System.out.println("Sound on");
            try {
                p1=Manager.createPlayer(is1, "audio/X-wav");
                p2=Manager.createPlayer(is2, "audio/X-wav");
                p3=Manager.createPlayer(is3, "audio/X-wav");
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (MediaException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }

サウンドの 1 つを再生する必要があるたびに、他の 2 人のプレーヤーを停止し (誰も実行していないことを確認するためp2.stop(); p3.stop();)、3 番目のプレーヤーを開始し ( p1.start();)、2 人のプレーヤーを停止するたびに (PREFETCHED 状態)、 3 つ目は実行されておらず、例外がスローされます。

4

2 に答える 2

1

Java ME仕様はこれに固有ではありませんが、実際のデバイスでは通常、一度に1人のプレーヤーしか割り当てることができないため、プレーヤーを停止するだけでは不十分です。このフォーラム投稿も参照してください。新しいプレーヤーを再生する前にプレーヤーの割り当てを適切に解除することも難しいと感じたので、自分のコードでは、新しいサウンドを再生する前に1つのサウンドが終了するのを待つことにしました。

于 2011-05-14T17:24:14.117 に答える
-1

j2meでは、プレーヤーは1人だけです。複数のプレーヤーはサポートされていません。サウンドを次々に実行する方法または他のサウンドを実行する方法複数のサウンドを再生する場合は、以下のコーディングに従います。

public class AudioPlayer implements javax.microedition.media.PlayerListener{

Player player;
int count=0;

public void playMedia(){

try{

player = Manager.createPlayer(getClass().getResourceAsStream(audioFiles[count]),"audio/x-amr");
player.addPlayerListener(this);
player.start();

}
catch (Exception e) {
return ;
}
}


public void playerUpdate(Player p,String event,Object eventData) 
{

        //Playing next audio file after completion of current audio.
}

}
于 2012-07-03T09:33:10.717 に答える