我的情况是我使用javax.Media.Manager创建javax.Media.player实例(在wav foramt中播放音频),我的代码如下所示: -
Player player = null;
MediaLocator locator = new MediaLocator("file path to wav file");
Manager.setHint(Manager.LIGHTWEIGHT_RENDERER, new Boolean(true));
try {
player = Manager.createRealizedPlayer(locator);
}
catch (CannotRealizeException e) {
e.printStackTrace();
}
player.addControllerListener(this);
player.start();
player.setMediaTime();
在玩了一个玩家的实例之后我就在它上面调用了setMediaTime,问题是玩家有时会根据提供的时间进行更新,有时则不会。 任何人都可以告诉我,我犯了什么错误。
答案 0 :(得分:0)
最后,我通过调整代码来实现这一点,我通过
获得了播放器实例Manager.createPlayer(localtor)
并通过忙碌的等待方法实现了我的播放器,一旦玩家意识到我调用了setMediaTime方法来设置音频开始设置。
我遇到这个问题的原因是,如果创建了新的播放器实例,并且一旦播放器启动并且实现调用setMediaTime对此没有任何影响,来自JMF API的BasicPlayer将启动一个新线程,基本上这是一个我忽略的线程问题。