我每次按下按钮时都会尝试使用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();
我第一次播放声音时,我得到了一个
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();
最后,它不会抛出那些错误,但它也不会在第一次播放声音。
我该如何解决这个问题?
答案 0 :(得分:1)
mp.start()
是异步的。所以当你致电mp.setMediaTime(new Time(0));
时
在致电start()
后,玩家尚未意识到。
您可以添加ControllerListener
并收听其活动。获得RealizedEvent
后,请设置媒体时间。最初拨打mp.realize()
并获取活动,设置媒体时间然后拨打start()