我有一个应用程序处理来自蓝牙的数据并将其发送到Web服务。最近有人要求在应用程序中添加声音。现在,当应用程序处理批量数据并且播放器在几秒钟后不断播放时,我得到“应用程序没有响应”异常。然后该过程终止。在日志中,我可以看到在此异常之后记录了大量的ForcedStackTrace异常。
声音在单独的线程中播放。如果应用程序不播放声音或播放短音 - 一切正常。有没有办法避免这种异常发生?为什么会这样?
InputStream mediaStream = null;
try {
mediaStream = getClass().getResourceAsStream(relativePath);
getLogger().log("setting player _ " + _audioType);
setPlayer(Manager.createPlayer(mediaStream, _audioType));
_currentPlayer.addPlayerListener(this);
_currentPlayer.setLoopCount(1);
_currentPlayer.realize();
VolumeControl vc = (VolumeControl) _currentPlayer
.getControl("VolumeControl");
if (vc != null) {
vc.setLevel(_voumeLevel);
}
_currentPlayer.prefetch();
_currentPlayer.start();
} catch (Exception e) {
}
(从BB论坛转发)
答案 0 :(得分:2)
通过实现我自己的PlayerManager来解决,在单独的线程中运行它将以队列方式播放项目,而不是使用内部Player实现的许多线程。