如何解决j2me播放多个声音文件的问题
| 我在Eclipse中的j2me MIDP2中正在开发的游戏中播放两个以上的声音文件时遇到问题。 请告诉我播放多个“ 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状态) )第三个未运行,并且引发了异常。
解决方法
Java ME规范对此没有具体说明,但是在实际设备上,通常一次只能分配一个播放器,因此仅停止播放器是不够的。另请参阅此论坛帖子。我发现即使在播放新声音之前正确分配播放器也是一个挑战,因此在我自己的代码中,我试图等待一种声音结束后再尝试播放新声音。
,在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.
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。