javax.microedition.media.player를 사용할 때 응용 프로그램이 예외로 충돌합니다

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

  •  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 포럼에서 크로스 포스트)

도움이 되었습니까?

해결책

별도의 스레드로 실행되면 내부 플레이어 구현을 사용하여 많은 스레드를 갖는 대신 항목을 큐 방식으로 재생할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top