2009-09-22 3 views
1

블루투스의 데이터를 처리하고 웹 서비스로 전송하는 응용 프로그램이 있습니다. 최근에 응용 프로그램에 소리를 추가하라는 요청이있었습니다. 이제 응용 프로그램이 데이터 배치를 처리하고 플레이어가 몇 초 후에 끊임없이 재생되면 "응용 프로그램이 응답하지 않습니다"라는 예외가 발생합니다. 그런 다음 프로세스가 종료됩니다. 로그에서이 예외 이후에 많은 ForcedStackTrace 예외가 기록 된 것을 볼 수 있습니다.javax.microedition.media.Player를 사용할 때 예외로 인해 응용 프로그램이 충돌 함

소리는 별도의 스레드에서 재생됩니다. 앱에서 소리가 재생되거나 짧은 소리가 재생되지 않으면 모든 것이 정상적으로 작동합니다. 이 예외가 발생하는 것을 피할 수있는 방법이 있습니까? 왜 그런가?

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)

+0

JDE의 정확한 버전을 지정 하시겠습니까? 정확하게 플레이어를 만드십니까? (특정 매개 변수는 환영합니다)? – nixau

+0

JDE 4.0.2 라이브러리를 사용하여 컴파일합니다. 프로젝트는 Eclipse 기반입니다. – Revenge

+0

언제든지 질문을 편집하고 답변 할 수 있습니다.) –

답변

2

별도의 스레드에서 실행, 내 자신의 PlayerManager는, 큐 방식이보다는 내부 Player를 사용하여 많은 스레드를 가지고있는 항목을 재생 할 구현하여 해결 이행.

관련 문제