⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 viewermanager2.java

📁 编辑视频文件
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
        disabledMediaPlayers.addAll(slaveMediaPlayers);        slaveMediaPlayers.clear();    }    // this must be called from the outside, maybe viewer manager can derive    // the signalSourcePlayer implicitly. The sugnal source player is an mpeg    // or wav player that renders the audio for the wav data that is used in the signal viewer    public void setSignalSourcePlayer(ElanMediaPlayer player) {        signalSourcePlayer = player;    }    /**     * DOCUMENT ME!     *     * @return DOCUMENT ME!     */    public long getSignalViewerOffset() {        long offset = 0;        if (signalSourcePlayer != null) {            offset = signalSourcePlayer.getOffset();        }        return offset;    }    /**     * DOCUMENT ME!     *     * @param player DOCUMENT ME!     * @param offset DOCUMENT ME!     */    public void setOffset(ElanMediaPlayer player, long offset) {        player.setOffset(offset);        if ((player == signalSourcePlayer) && (signalViewer != null)) {            signalViewer.setOffset(offset);        }        transcription.setChanged();    }    /**     * DOCUMENT ME!     *     * @return the ElanMediaPlayer that is the current master media player.     */    public ElanMediaPlayer getMasterMediaPlayer() {        return masterMediaPlayer;    }    /**     * Returns the collection of slave mediaplayers.     *     * @return the collection of slave mediaplayers     */    public Vector getSlaveMediaPlayers() {        return slaveMediaPlayers;    }    /**     * DOCUMENT ME!     *     * @return the controlpanel for the master media player     */    public ElanMediaPlayerController getMediaPlayerController() {        if (mediaPlayerController == null) {            mediaPlayerController = new ElanMediaPlayerController(this);            PeriodicUpdateController controller = getControllerForPeriod(MEDIA_CONTROL_PANEL_PERIOD);            controllers.put(mediaPlayerController, controller);            connect(mediaPlayerController);            viewers.add(mediaPlayerController);            enabledViewers.add(mediaPlayerController);        }        return mediaPlayerController;    }    /**     * DOCUMENT ME!     *     * @return     */    public MediaPlayerControlSlider getMediaPlayerControlSlider() {        if (mediaPlayerControlSlider == null) {            mediaPlayerControlSlider = new MediaPlayerControlSlider();            PeriodicUpdateController controller = getControllerForPeriod(MEDIA_CONTROL_PANEL_PERIOD);            controllers.put(mediaPlayerControlSlider, controller);            connect(mediaPlayerControlSlider);            viewers.add(mediaPlayerControlSlider);            enabledViewers.add(mediaPlayerControlSlider);        }        return mediaPlayerControlSlider;    }    /**     * DOCUMENT ME!     *     * @return     */    public AnnotationDensityViewer getAnnotationDensityViewer() {        if (annotationDensityViewer == null) {            annotationDensityViewer = new AnnotationDensityViewer(transcription);            PeriodicUpdateController controller = getControllerForPeriod(MEDIA_CONTROL_PANEL_PERIOD);            controllers.put(annotationDensityViewer, controller);            connect(annotationDensityViewer);            viewers.add(annotationDensityViewer);            enabledViewers.add(annotationDensityViewer);        }        return annotationDensityViewer;    }    /**     * DOCUMENT ME!     *     * @return     */    public TimePanel getTimePanel() {        if (timePanel == null) {            timePanel = new TimePanel();            PeriodicUpdateController controller = getControllerForPeriod(MEDIA_CONTROL_PANEL_PERIOD);            controllers.put(timePanel, controller);            connect(timePanel);            viewers.add(timePanel);            enabledViewers.add(timePanel);        }        return timePanel;    }    /**     * Creates a Viewer for the specified fully qualified class name.     *     * @param className the class name     * @param controllerPeriod the requested period for controller updates     *     * @return the viewer     */    public Viewer createViewer(String className, long controllerPeriod) {        Viewer viewer = null;        try {            viewer = (Viewer) Class.forName(className).newInstance();            viewer.setViewerManager(this);            if (viewer instanceof AbstractViewer) {                PeriodicUpdateController controller = getControllerForPeriod(controllerPeriod);                controllers.put(viewer, controller);                connect((AbstractViewer) viewer);                viewers.add(viewer);                enabledViewers.add(viewer);            } else if (viewer instanceof ControllerListener) {                getControllerForPeriod(controllerPeriod).addControllerListener((ControllerListener) viewer);            } else {                // special case for syntax viewer?                /*                try {                    Method method = viewer.getClass().getDeclaredMethod("getControllerListener", null);                    ControllerListener listener = (ControllerListener) method.invoke(viewer, null);                    getControllerForPeriod(controllerPeriod).addControllerListener(                            listener);                } catch (Exception e){                    System.out.println("Could not connect controller: " + e.getMessage());                }                */            }        } catch (Exception e) {            System.out.println("Could not create viewer: " + className + ": " +                e.getMessage());        }        return viewer;    }    /**     * Connection method to be used by external objects that want to connect a     * listener     *     * @param listener     */    public void connectListener(Object listener) {        if (listener instanceof ControllerListener) {            getControllerForPeriod(MEDIA_CONTROL_PANEL_PERIOD)                .addControllerListener((ControllerListener) listener);        }        if (listener instanceof SelectionListener) {            selection.addSelectionListener((SelectionListener) listener);        }        if (listener instanceof ActiveAnnotationListener) {            activeAnnotation.addActiveAnnotationListener((ActiveAnnotationListener) listener);        }        if (listener instanceof TimeScaleListener) {            timeScale.addTimeScaleListener((TimeScaleListener) listener);        }        if (listener instanceof ACMEditListener) {            try {                ((ACMEditableDocument) transcription).addACMEditListener((ACMEditListener) listener);            } catch (Exception e) {                e.printStackTrace();            }        }    }    /**     * Connection method to be used by external objects that want to connect a     * listener     *     * @param listener     */    public void disconnectListener(Object listener) {        if (listener instanceof ControllerListener) {            getControllerForPeriod(MEDIA_CONTROL_PANEL_PERIOD)                .removeControllerListener((ControllerListener) listener);        }        if (listener instanceof SelectionListener) {            selection.removeSelectionListener((SelectionListener) listener);        }        if (listener instanceof ActiveAnnotationListener) {            activeAnnotation.removeActiveAnnotationListener((ActiveAnnotationListener) listener);        }        if (listener instanceof TimeScaleListener) {            timeScale.removeTimeScaleListener((TimeScaleListener) listener);        }        if (listener instanceof ACMEditListener) {            try {                ((ACMEditableDocument) transcription).removeACMEditListener((ACMEditListener) listener);            } catch (Exception e) {                e.printStackTrace();            }        }    }    /**     * DOCUMENT ME!     *     * @return the controlpanel for the Transcriptions tiers     */    public MultiTierControlPanel getMultiTierControlPanel() {        return multiTierControlPanel;    }    /**     * Creates a TimeLineViewer that is connected to the Viewer universe.     *     * @return the TimeLineViewer for the Transcrption in this ViewerManager     */    public TimeLineViewer createTimeLineViewer() {        TimeLineViewer viewer = new TimeLineViewer(transcription);        PeriodicUpdateController controller = getControllerForPeriod(TIME_LINE_VIEWER_PERIOD);        controllers.put(viewer, controller);        connect(viewer);        viewers.add(viewer);        enabledViewers.add(viewer);        return viewer;    }    /**     * Creates a TimeLineViewer that is connected to the Viewer universe.     *     * @return the TimeLineViewer for the Transcrption in this ViewerManager     */    public InterlinearViewer createInterlinearViewer() {        InterlinearViewer viewer = new InterlinearViewer(transcription);        PeriodicUpdateController controller = getControllerForPeriod(INTERLINEAR_VIEWER_PERIOD);        controllers.put(viewer, controller);        connect(viewer);        viewers.add(viewer);        enabledViewers.add(viewer);        return viewer;    }    /**     * Creates a SignalViewer that is connected to the Viewer universe.     *     * @param mediaURL String that represents the signal media URL     *     * @return the SignalViewer for the media URL     */    public SignalViewer createSignalViewer(String mediaURL) { // throw exception ?        SignalViewer viewer = null;        // URL or String  problem to be solved, is a problem for rtsp://        // the SignalViewer dows not work with streaming (rtsp://)        if (mediaURL.startsWith("rtsp://")) {            return viewer; // == null        }        viewer = new SignalViewer(mediaURL);        PeriodicUpdateController controller = getControllerForPeriod(SIGNAL_VIEWER_PERIOD);        controllers.put(viewer, controller);        connect(viewer);        // something to set the offset        viewers.add(viewer);        enabledViewers.add(viewer);        signalViewer = viewer; // a problem when there is more than one signal viewer        return viewer;    }    /**     * Creates a GridViewer that is connected to the Viewer universe but not     * yet connected to a certain Tier.     *     * @return the GridViewer     */    public GridViewer createGridViewer() {        GridViewer viewer = new GridViewer();        connect(viewer);        viewers.add(viewer);        enabledViewers.add(viewer);        return viewer;    }    /**    * Creates a GridViewer that is connected to the Viewer universe but not    * yet connected to a certain Tier.    *    * @return the GridViewer    */    public ElanResultViewer createSearchResultViewer() {        ElanResultViewer viewer = new ElanResultViewer();        connect(viewer);        viewers.add(viewer);        enabledViewers.add(viewer);        return viewer;    }    /**        * Creates a SubtitleViewer that is connected to the Viewer universe but        * not yet connected to a certain Tier.        *        * @return the SubtitleViewer        */    public SubtitleViewer createSubtitleViewer() {        SubtitleViewer viewer = new SubtitleViewer();        connect(viewer);        viewers.add(viewer);        enabledViewers.add(viewer);        return viewer;    }    /**     * Creates a TextViewer that is connected to the Viewer universe but not     * yet connected to a certain Tier.     *     * @return the TextViewer     */    public TextViewer createTextViewer() {        TextViewer viewer = new TextViewer();        connect(viewer);        viewers.add(viewer);        enabledViewers.add(viewer);        return viewer;    }    /**     * Creates a GlassPaneSVGViewer that can be used as an transparent overlay  on     * lightweight components. Unfinished.     *     * @return DOCUMENT ME!     */    public GlassPaneSVGViewer createSVGViewer() {        GlassPaneSVGViewer viewer = new GlassPaneSVGViewer(transcription);        PeriodicUpdateController controller = getControllerForPeriod(INTERLINEAR_VIEWER_PERIOD);        controllers.put(viewer, controller);        connect(viewer);        viewers.add(viewer);        enabledViewers.add(viewer);        return viewer;    }    /**     * A JMF specific GlassPaneSVGViewer solution that uses the JMF plugin mechanism.<br>     * The viewer does not need controller updates, it paints on the frames of     * the player. This viewer should be created after the mastermediaplayer!     *     * @return a connected JMFSVGViewer that is connected to a custom     *         VideoRenderer     */    public JMFSVGViewer createJMFSVGViewer() {        if ((getMasterMediaPlayer() != null) &&                getMasterMediaPlayer() instanceof JMFGraphicMediaPlayer) {            if (((JMFGraphicMediaPlayer) getMasterMediaPlayer()).getRenderer() != null) {                JMFSVGViewer viewer = new JMFSVGViewer(transcription);                if (((JMFGraphicMediaPlayer) getMasterMediaPlayer()).connectViewer(                            viewer)) {                    connect(viewer);                    viewers.add(viewer); //??                    enabledViewers.add(viewer); //??                } else {                    viewer = null;                }                return viewer;            }        }        return null;    }    /**     * Creates a SVGViewer that creates QT SpriteTracks for tiers that have references     * to graphic annotations and adds them to the movie.     *     * @return a connected QTSVGViewer     */    public QTSVGViewer createQTSVGViewer() {        if ((getMasterMediaPlayer() != null) &&                getMasterMediaPlayer() instanceof QTMediaPlayer) {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -