1

我有一个应用程序处理来自蓝牙的数据并将其发送到 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论坛的交叉发布)

4

1 回答 1

2

通过实现我自己的 PlayerManager 来解决,它在单独的线程中运行将以队列方式播放项目,而不是使用内部 Player 实现有许多线程。

于 2009-09-23T08:52:44.093 回答