java – 为媒体播放器制作搜索栏.

我正在使用JMF制作媒体播放器,我想使用自己的控件组件
任何人都可以帮我制作媒体播放器的搜索栏,以便它可以根据滑块位置播放歌曲.

只是建议我一些逻辑,我可以事后弄清楚编码部分

if(player!=null){
    long durationNanoseconds = 
    (player.getDuration().getNanoseconds());
    durationbar.setMaximum((int) player.getDuration().getSeconds());
    int duration=(int) player.getDuration().getSeconds();
    int percent = durationbar.getValue();
    long t = (durationNanoseconds / duration) * percent;
    Time newTime = new Time(t);
    player.stop();
    player.setMediaTime(newTime);
    player.start();
    mousedrag=true;

这是代码.现在我如何让滑块与歌曲一起移动?
我拖动/点击它时滑块有效,但它不随着歌曲移动.

最佳答案
使用滑块的问题是,当以编程方式移动滑块位置时,它会触发事件.在滑块上触发事件时,通常表示应用程序.必须做点什么,比如移动歌曲位置.效果是永无止境的循环.通过设置标志并忽略某些事件,可能有办法解决这个问题,但我决定采用不同的方式.

相反,我使用JProgressBar来指示轨道中的位置,并使用MouseListener来检测用户何时单击一个单独的位置.使用Swing Timer更新进度条,每隔50-200毫秒检查一次轨道位置.检测到MouseEvent时,重新定位轨道.

该栏位于此GUI的右上角.将鼠标悬停在它上面会产生一个工具提示,显示该鼠标位置的轨道时间.

转载注明原文:java – 为媒体播放器制作搜索栏. - 代码日志