private void seekFinished() { long pos = scaleUnit.toNanos(getValue()); if (pos != seekingPos) { // Slider changed position - start the whole seek process over again. segmentSeek(pos); } else { isSeeking.set(false); } } }
private void segmentDone(final long position) { long pos = scaleUnit.toNanos(getValue()); // System.out.println("Segment done position=" + position // + ", seekingPos=" + seekingPos + ", getValue()=" + pos); if (pos != seekingPos) { // // If the slider moved since this segment seek began, just start a new seek // segmentSeek(pos); } else { // Continue playing from this position Gst.getExecutor().execute(new Runnable() { public void run() { pipeline.seek(1.0, Format.TIME, SeekFlags.FLUSH | SeekFlags.KEY_UNIT, SeekType.SET, position, SeekType.SET, -1); pipeline.getState(50, TimeUnit.MILLISECONDS); SwingUtilities.invokeLater(new Runnable() { public void run() { seekFinished(); } }); } }); } } private void seekFinished() {