playProgressBar = new ProgressBar();
playProgressBar.sinkEvents(Event.ONMOUSEDOWN);
playProgressBar.addListener(Event.ONMOUSEDOWN, new Listener<ComponentEvent>()
{
public void handleEvent(ComponentEvent ce)
{
int x = ce.getClientX();
int left = playProgressBar.getAbsoluteLeft();
int width = playProgressBar.getWidth();
double d = 100.0 * (x-left)/width;
MdtRasterTrackPage.this.setPlayTrackPosition ((int) d);
return;
}
});
playProgressBar.setWidth(200);
private void setPlayTrackPosition (int pos)
{
if(dStart == null || dEnd == null)
return;
recvEndPacket = false;
stopPlayTrack ();
clearTrackPointBuf ();
clearAllTrackPoints (mapPanel.getMapObj());
if(pos < 0x0)
pos = 0x0;
else if(pos > 100)
pos = 100;
// set position time
long start = dStart.getTime();
long end = dEnd.getTime();
Date date = new Date ();
date.setTime(start + (end-start)*pos/100);
String posTime = format.format(date);
reqEntry.set("positionTime", posTime);
playProgressBar.updateProgress(pos/100.0, null);
playTrack ();
}
本文介绍了一个基于进度条的播放控制实现方案。通过监听鼠标点击事件,计算点击位置对应的百分比,并据此调整播放进度。此外,还包括了停止播放、清除播放点缓冲等操作。
151

被折叠的 条评论
为什么被折叠?



