📄 mediaplayer.java
字号:
package javax.media.bean.playerbean;import java.applet.AppletContext;import java.awt.Component;import java.awt.Panel;import java.awt.PopupMenu;import java.beans.PropertyChangeSupport;import java.io.IOException;import java.io.ObjectInput;import java.io.ObjectOutput;import java.net.URL;import java.util.Vector;import java.util.logging.Level;import java.util.logging.Logger;import javax.media.ClockStoppedException;import javax.media.Control;import javax.media.Controller;import javax.media.ControllerListener;import javax.media.GainControl;import javax.media.IncompatibleSourceException;import javax.media.IncompatibleTimeBaseException;import javax.media.Manager;import javax.media.MediaLocator;import javax.media.NoPlayerException;import javax.media.Player;import javax.media.Time;import javax.media.TimeBase;import javax.media.protocol.DataSource;import net.sf.fmj.utility.LoggerSingleton;public class MediaPlayer extends java.awt.Container implements Player, java.io.Externalizable{ private static final Logger logger = LoggerSingleton.logger; // created the same vars that Sun's has, we aren't using many of them yet (or may might not ever) private PropertyChangeSupport changes; private String urlString; private MediaLocator mrl; private URL url; private AppletContext mpAppletContext; private boolean panelVisible; private boolean cachingVisible; private boolean fixedAspectRatio; //private boolean fitVideo; private boolean looping; transient Player player; transient Panel panel; transient Panel vPanel; transient Panel newPanel; transient Component visualComponent; transient Component controlComponent; transient Component cachingComponent; private transient int controlPanelHeight; private transient int urlFieldHeight; private int preferredHeight; private int preferredWidth; private int state; private Vector controlListeners; private PopupMenu zoomMenu; private URL mpCodeBase; protected transient GainControl gainControl; protected transient String curVolumeLevel; protected transient float curVolumeValue; protected transient String curZoomLevel; protected transient float curZoomValue; protected transient Time mediaTime; // selfListener private long contentLength; //private boolean fixtedFirstTime; private boolean displayURL; private boolean isPopupActive; // urlName // mouseListen; // errMeth; public MediaPlayer() { } public void addController(Controller newController) throws IncompatibleTimeBaseException { if (player == null) return; player.addController(newController); } public void addControllerListener(ControllerListener listener) { if (player == null) return; player.addControllerListener(listener); } public void close() { if (player == null) return; player.close(); } public void deallocate() { if (player == null) return; player.deallocate(); } public Control getControl(String forName) { if (player == null) return null; return player.getControl(forName); } public Component getControlPanelComponent() { if (player == null) return null; return player.getControlPanelComponent(); } public Control[] getControls() { if (player == null) return new Control[0]; return player.getControls(); // TODO: do we add extra controls? } public Time getDuration() { if (player == null) return DURATION_UNKNOWN; return player.getDuration(); } public GainControl getGainControl() { if (player == null) return null; return player.getGainControl(); } public long getMediaNanoseconds() { if (player == null) return Long.MAX_VALUE; return player.getMediaNanoseconds(); } public Time getMediaTime() { if (player == null) return new Time(Long.MAX_VALUE); return player.getMediaTime(); } public float getRate() { if (player == null) return 0.f; return player.getRate(); } public Time getStartLatency() { if (player == null) return new Time(Long.MAX_VALUE); return player.getStartLatency(); } public int getState() { if (player == null) return Unrealized; return player.getState(); } public Time getStopTime() { if (player == null) return null; return player.getStopTime(); } public Time getSyncTime() { if (player == null) return new Time(Long.MAX_VALUE); return player.getSyncTime(); } public int getTargetState() { if (player == null) return Unrealized; return player.getTargetState(); } public TimeBase getTimeBase() { if (player == null) return null; return player.getTimeBase(); } public Component getVisualComponent() { if (player == null) return null; return player.getVisualComponent(); } public Time mapToTimeBase(Time t) throws ClockStoppedException { if (player == null) return new Time(Long.MAX_VALUE); return player.mapToTimeBase(t); } public void prefetch() { if (player == null) return; player.prefetch(); } public void realize() { if (player == null) return; player.realize(); } public void removeController(Controller oldController) { if (player == null) return; player.removeController(oldController); } public void removeControllerListener(ControllerListener listener) { if (player == null) return; player.removeControllerListener(listener); } public void setMediaTime(Time now) { if (player == null) return; player.setMediaTime(now); } public float setRate(float factor) { if (player == null) return 0.f; return player.setRate(factor); } public void setSource(DataSource source) throws IOException, IncompatibleSourceException { if (player == null) return; player.setSource(source); } public void setStopTime(Time stopTime) { if (player == null) return; player.setStopTime(stopTime); } public void setTimeBase(TimeBase master) throws IncompatibleTimeBaseException { if (player == null) return; player.setTimeBase(master); } public void start() { if (player == null) return; player.start(); } public void stop() { if (player == null) return; player.stop(); } public void syncStart(Time at) { if (player == null) return; player.syncStart(at); } public String getMediaLocation() { if (player == null) return " "; throw new UnsupportedOperationException(); // TODO } protected MediaLocator getMediaLocator(String filename) { return new MediaLocator("file://" + filename); } public void setMediaLocation(String location) { throw new UnsupportedOperationException(); // TODO } public void setMediaLocator(MediaLocator locator) { try { player = Manager.createPlayer(locator); } catch (NoPlayerException e) { logger.log(Level.WARNING, "" + e, e); } catch (IOException e) { logger.log(Level.WARNING, "" + e, e); } } public void setDataSource(DataSource ds) { try { player = Manager.createPlayer(ds); } catch (NoPlayerException e) { logger.log(Level.WARNING, "" + e, e); } catch (IOException e) { logger.log(Level.WARNING, "" + e, e); } } public void setPlayer(Player newPlayer) { this.player = newPlayer; } public boolean getPlaybackLoop() { return looping; } public void setPlaybackLoop(boolean val) { looping = val; } public boolean isPlayBackLoop() { return looping; } public void setZoomTo(String scale) { this.curZoomLevel = scale; // TODO: convert to float } public String getZoomTo() { return curZoomLevel; } public int getControlPanelHeight() { return controlPanelHeight; } public int getMediaLocationHeight() { return urlFieldHeight; } public void setVolumeLevel(String volumeString) { curVolumeLevel = volumeString; // TODO: float conversion } public String getVolumeLevel() { return curVolumeLevel; } public boolean isMediaLocationVisible() { return displayURL; } public void setMediaLocationVisible(boolean val) { displayURL = val; } public boolean isControlPanelVisible() { return panelVisible; } public void setControlPanelVisible(boolean isVisible) { panelVisible = isVisible; } public boolean isCachingControlVisible() { return cachingVisible; } public void setCachingControlVisible(boolean isVisible) { cachingVisible = isVisible; } public boolean isFixedAspectRatio() { throw new UnsupportedOperationException(); // TODO } public void setFixedAspectRatio(boolean isFixed) { throw new UnsupportedOperationException(); // TODO } public void setPopupActive(boolean isActive) { isPopupActive = isActive; } public Player getPlayer() { return player; } public void stopAndDeallocate() { stop(); deallocate(); // TODO: is it more complicated than this? } // synchronized in reference impl public synchronized void waitForState(int s) { throw new UnsupportedOperationException(); // TODO } public void readExternal(ObjectInput in) throws java.io.IOException, ClassNotFoundException { throw new UnsupportedOperationException(); // TODO } public void writeExternal(ObjectOutput out) throws java.io.IOException { throw new UnsupportedOperationException(); // TODO } public void setBounds(int x, int y, int w, int h) { throw new UnsupportedOperationException(); // TODO } public java.awt.Dimension getPreferredSize() { throw new UnsupportedOperationException(); // TODO } public void addPropertyChangeListener(java.beans.PropertyChangeListener c) { throw new UnsupportedOperationException(); // TODO } public void removePropertyChangeListener(java.beans.PropertyChangeListener c) { throw new UnsupportedOperationException(); // TODO } public void setCodeBase(java.net.URL cb) { mpCodeBase = cb; } public void saveMediaTime() { throw new UnsupportedOperationException(); // TODO } public void restoreMediaTime() { throw new UnsupportedOperationException(); // TODO } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -