gpt4 book ai didi

java - 为媒体播放器制作一个搜索栏。

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:40:53 25 4
gpt4 key购买 nike

我正在使用 JMF 制作一个媒体播放器,我想使用我自己的控制组件谁能帮我为媒体播放器制作一个搜索栏,以便它可以根据 slider 位置播放歌曲。

给我一​​些逻辑,之后我可以弄清楚编码部分

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;

这是代码。现在我怎样才能让 slider 随着歌曲一起移动呢?当我拖动/单击 slider 时, slider 会起作用,但它不会随着歌曲移动。

最佳答案

为此使用 slider 的问题在于,当以编程方式移动 slider 位置时,它会触发事件。当在 slider 上触发事件时,它通常表示应用程序。必须做一些事情,例如移动歌曲位置。效果是一个永无止境的循环。可能有一种方法可以通过设置标志并忽略一些事件来解决这个问题,但我决定采用不同的方法。

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

可以在该 GUI 的右上角看到该栏。将鼠标悬停在它上面会产生一个工具提示,显示该鼠标位置处的轨道时间。

Duke Box using progress bar for track postion

关于java - 为媒体播放器制作一个搜索栏。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12786346/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com