Java JMF:无法在未实现的控制器上设置媒体时间
我尝试使用JMF在每次按下按钮时播放声音 这就是我必须构建媒体播放器的内容:Java JMF:无法在未实现的控制器上设置媒体时间,java,jmf,Java,Jmf,我尝试使用JMF在每次按下按钮时播放声音 这就是我必须构建媒体播放器的内容: MediaPlayer mp = new javax.media.bean.playerbean.MediaPlayer(); mp.setMediaLocation("file:///D:/fall.wav"); mp.setPlaybackLoop(false); 而且,要播放一次声音,我会 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);
而且,要播放一次声音,我会
mp.start();
mp.setMediaTime(new Time(0));
mp.stop();
我第一次播放这个声音时,我得到了一个
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();
最后,它不会抛出这些错误,但也不会第一次播放声音
如何解决此问题?mp.start()
是异步的。因此,当您调用mp.setMediaTime(新时间(0))时代码>
在调用start()
之后,播放器尚未实现。
您可以添加一个ControllerListener
并监听其事件。一旦获得RealizedEvent
,然后设置媒体时间。最好先调用mp.realize()
,在获得事件后,设置媒体时间,然后调用start()