在BlackBerry上播放声音的java问题
在黑莓手机上播放声音时,我遇到以下问题:
- 第一次播放声音时,应用程序会挂起约500毫秒(不是在创建播放器时,而是在实际播放声音时)
- 通话和播放的声音之间有延迟
除了模拟器,我还测试了物理设备。在模拟器上,一定有一个bug,因为声音开始之前需要几秒钟(我听说这是模拟器的问题,所以…)
我也做了测试。wav vs。mp3文件,它给出了几乎相同的结果
下面是我用来加载播放器的代码:
stream = new Object().getClass().getResourceAsStream(fileName);
result = javax.microedition.media.Manager.createPlayer(stream, fileName.endsWith(".wav")?"audio/x-wav":"audio/mpeg");
if (prefetch) {
result.prefetch();
}
然后,我存储播放器参考,稍后使用该参考来播放声音,代码如下:
javax.microedition.media.Player player = (javax.microedition.media.Player)resources[soundId];
if (player != null) {
//#debug
System.out.println("Player state: " + player.getState());
if (player.getState() != javax.microedition.media.Player.STARTED) {
player.setLoopCount(loopCount);
player.start();
}
}
我敢肯定延迟是由于声音播放,因为我有一个开关关闭它,延迟消失时,我这样做。我做错了什么
更新
什么都没用,所以我最终把声音改成了midi文件,这样处理起来更好。不过,如果有人能找到解决办法,我还是想听听
# 1 楼答案
这个问题没有好的解决方案,但下面是如何缓解它: