我有从蓝牙处理数据并将其发送到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论坛crossposted)

有帮助吗?

解决方案

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top