public GstMediaPlayer(UnsignedIntegerFourBytes instanceId, LastChange avTransportLastChange, LastChange renderingControlLastChange) { super(); this.instanceId = instanceId; this.avTransportLastChange = avTransportLastChange; this.renderingControlLastChange = renderingControlLastChange; try { // Disconnect the old bus listener /* TODO: That doesn't work for some reason... getPipeline().getBus().disconnect( (Bus.STATE_CHANGED) Reflections.getField(getClass(), "stateChanged").get(this) ); */ // Connect a fixed bus state listener getPipeline().getBus().connect(busStateChanged); // Connect a bus tag listener getPipeline().getBus().connect(busTag); } catch (Exception ex) { throw new RuntimeException(ex); } addMediaListener(new GstMediaListener()); setVideoSink(videoComponent.getElement()); }
public void propertyChange(PropertyChangeEvent evt) { setPreferredSize(renderComponent.getPreferredSize()); scaleVideoOutput(); } };
@Override public void mousePressed(MouseEvent evt) { mouse("mouse-button-press", evt); } @Override
public void setOpacity(float alpha) { float[] c = getBackground().getColorComponents(new float[3]); setBackground(new Color(c[0], c[1], c[2], alpha)); videoComponent.setOpacity(alpha); } public float getOpacity() {
@Override public void keyReleased(KeyEvent evt) { key("key-release", evt); } };
/** * Wraps the {@link Element} in a <tt>XOverlay</tt> interface * * @param element the element to use as a <tt>XOverlay</tt> * @return a <tt>XOverlay</tt> for the element */ public static XOverlaySwing wrap(Element element) { return new XOverlaySwing(element); }
@Override public boolean isOpaque() { return VideoComponent.this.isOpaque(); } @Override
public <V> ScheduledFuture<V> schedule(Callable<V> task, long initialDelay, TimeUnit units) { return schedule(task, initialDelay, 0, units); }
@Override public int createNSView() { return (int) createNSViewLong(); }
private static ImageIcon loadIcon(String name) { return loadIcon(16, name); } private static ImageIcon loadIcon(int size, String name) {
public void setKeepAspect(boolean keepAspect) { videoComponent.setKeepAspect(keepAspect); } public void setControlsVisible(boolean visible) {
@Override public void endOfMedia(EndOfMediaEvent evt) { this.stop(evt); }
private static ImageIcon loadIcon(String name) { return loadIcon(16, name); } private static ImageIcon loadIcon(int size, String name) {
@Override public void mouseMoved(MouseEvent evt) { mouse("mouse-move", evt); } @Override
@Override public void keyPressed(KeyEvent evt) { key("key-press", evt); }
@Override public void mouseDragged(MouseEvent evt) { mouse("mouse-move", evt); } };
@Override public void mouseReleased(MouseEvent evt) { mouse("mouse-button-release", evt); } @Override