javax.microedition.media.player를 사용할 때 응용 프로그램이 예외로 충돌합니다
-
12-09-2019 - |
문제
Bluetooth에서 데이터를 처리하고 웹 서비스로 보내는 응용 프로그램이 있습니다. 최근에 응용 프로그램에 사운드를 추가하라는 요청이있었습니다. 이제 응용 프로그램이 데이터 배치를 처리하고 몇 초 후에 플레이어가 지속적으로 재생되는 경우 "응용 프로그램이 응답하지 않습니다"예외를 얻습니다. 그런 다음 프로세스가 종료됩니다. 로그 에서이 예외 이후에 많은 강제 추적 트레이스 예외가 기록 된 것을 볼 수 있습니다.
사운드는 별도의 스레드에서 재생됩니다. 앱이 사운드를 재생하지 않거나 짧은 사운드를 재생하면 모든 것이 잘 작동합니다. 이 예외가 발생하지 않는 방법이 있습니까? 왜 그런 일이 일어나고 있습니까?
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 포럼에서 크로스 포스트)
해결책
별도의 스레드로 실행되면 내부 플레이어 구현을 사용하여 많은 스레드를 갖는 대신 항목을 큐 방식으로 재생할 수 있습니다.
제휴하지 않습니다 StackOverflow