2012-06-09 3 views
0

버튼을 누를 때마다 JMF를 사용하여 사운드를 재생하려고합니다. JMF : 활성화되지 않은 컨트롤러에서 미디어 시간을 설정할 수 없습니다.

내가 미디어 플레이어 contruct해야 할 것입니다 : 내가

mp.start(); 
mp.setMediaTime(new Time(0)); 
mp.stop(); 

나는 사운드를 재생 처음 수행

MediaPlayer mp = new javax.media.bean.playerbean.MediaPlayer(); 
mp.setMediaLocation("file:///D:/fall.wav"); 
mp.setPlaybackLoop(false); 

을 그리고, 한 번 소리를 재생하기 위해, 내가 얻을

javax.media.NotRealizedError: Cannot set media time on a unrealized controller 

Exception in thread AWT-EventQueue-0" javax.media.NotRealizedError: 
    Cannot set media time on a unrealized controller 

setMediaTime 라인에 있습니다. 소리를내는 버튼을 눌렀을 때 어떤 일도 일어나지 않습니다. 처음 만 발생합니다. 내가 생성자를 변경하고 마지막에

mp.realize(); 

를 추가하는 경우, 그것은 이러한 오류가 발생하지 않지만, 그것은 또한 소리를 처음 재생되지 않습니다.

어떻게 수정해야합니까?

답변

1

mp.start()은 비동기입니다. 따라서 start()을 호출 한 직후에 mp.setMediaTime(new Time(0)); 으로 전화하면 플레이어가 아직 인식되지 않습니다. ControllerListener을 추가하고 해당 이벤트를들을 수 있습니다. RealizedEvent을 얻은 다음 미디어 시간을 설정하십시오. 먼저 mp.realize()에 전화를 걸어 이벤트를 받으면 미디어 시간을 설정 한 다음 start()

으로 전화하십시오.