Pregunta

Tengo una aplicación que procesa los datos de bluetooth y enviarlo al servicio web. Recientemente hubo una solicitud para añadir sonidos a la aplicación. Ahora, cuando la aplicación procesa lotes de datos y el jugador está jugando constantemente al cabo de unos segundos me sale "La aplicación no está respondiendo" excepción. Y entonces el proceso se termina. En los registros que puedo ver un montón de ForcedStackTrace excepción registra después de esta excepción.

Los sonidos se reproducen en el hilo separado. Si la aplicación no reproduce sonidos o reproduce sonidos cortos - todo funciona bien. ¿Hay alguna manera de evitar esta excepción pasando? Por qué está sucediendo?

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) {
}

(crossposted de los foros BB)

¿Fue útil?

Solución

Se resuelve mediante la aplicación de mi propia PlayerManager, que, corriendo en un hilo separado jugaría el artículo en la forma de cola en lugar de tener muchos hilos usando la implementación del jugador interior.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top