我有一个情况,我正在创建一个javax的实例。Media.player(在wav foramt中播放音频)使用javax。Media.Manager和我的代码看起来像:-
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,问题是有时播放器会使用提供的时间更新,有时不会。谁能建议我犯了什么错误。
最后,我通过调整我的代码来工作,我通过以下方式获得了播放器实例
Manager.createPlayer(localtor)
并通过使用忙碌的等待方法实现了我的播放器,一旦意识到播放器,我就会调用 setMediaTime 方法来设置音频开始设置。
我面临这个问题的原因是,如果创建了新播放器实例,JMF API 的 BasicPlayer 会旋转一个新线程,一旦播放器启动并意识到调用 setMediaTime 不会对此产生任何影响,基本上这更多的是我忽略的线程问题。