Applicazione si blocca con l'eccezione quando si utilizza javax.microedition.media.Player

StackOverflow https://stackoverflow.com/questions/1459681

  •  12-09-2019
  •  | 
  •  

Domanda

Ho un'applicazione che elabora i dati dal bluetooth e inviarlo al servizio web. Recentemente c'è stata una richiesta di aggiungere suoni per l'applicazione. Ora, quando l'applicazione elabora le serie di dati e il giocatore sta giocando costantemente dopo pochi secondi ottengo "L'applicazione non risponde" eccezione. E allora il processo è terminato. Nei registri posso vedere un sacco di eccezione ForcedStackTrace registrato dopo questa eccezione.

I suoni vengono riprodotti nel thread separato. Se un'applicazione non gioca suona o emette suoni brevi - tutto funziona bene. C'è un modo per evitare questa eccezione accadendo? Perché accade?

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

(crosspost da forum BB)

È stato utile?

Soluzione

Risolto implementando la mia PlayerManager, che, in esecuzione in un thread separato avrebbe giocato la voce nel modo di coda piuttosto che avere tanti fili utilizzando l'applicazione Player interno.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top