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();
            }
        }

每次我需要播放其中一个声音时,我都会停止其他两个玩家(以确保他们中没有人在运行p2.stop(); p3.stop();)并启动第三个(p1.start();)并且每次我有两个玩家停止(处于 PREFETCHED 状态)时第三个没有运行并且抛出异常。

4

2 回答 2

1

Java ME 规范对此没有具体说明,但在实际设备上,您通常一次只能分配一个播放器,因此仅停止播放器是不够的。另请参阅此论坛帖子。我发现即使在播放新播放器之前正确释放播放器也是一个挑战,因此在我自己的代码中,我在尝试播放新播放器之前采取了等待一个声音结束的方法。

于 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 回答