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

📄 rtpplayerapplet.java

📁 Rtp Player Applet Sample
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
        if (player == null)            return;                        if (event instanceof RealizeCompleteEvent) {            // add the video player's visual component to the applet            if (( visualComponent =                  player.getVisualComponent())!= null){                width = visualComponent.getPreferredSize().width;                height += visualComponent.getPreferredSize().height;                if (panel == null) {                    panel = new Panel();                    repositionPanel(width, height);                    panel.setLayout(new BorderLayout());                }                panel.add("Center", visualComponent);                panel.validate();            }            // add the player's control component to the applet            if (( controlComponent =                   player.getControlPanelComponent()) != null){                height += controlComponent.getPreferredSize().height;                if (panel == null) {                    panel = new Panel();                    panel.setLayout(new BorderLayout());                }                repositionPanel(width, height);                panel.add("South", controlComponent);                panel.validate();            }                        if (panel != null){                add("Center", panel);                invalidate();            }        }        if (event instanceof SizeChangeEvent) {            if (panel != null){                SizeChangeEvent sce = (SizeChangeEvent) event;                int nooWidth = sce.getWidth();                int nooHeight = sce.getHeight();                                // Add the height of the default control component                if (controlComponent != null)                    nooHeight += controlComponent.getPreferredSize().height;                                // Set the new panel bounds and redraw                repositionPanel(nooWidth, nooHeight);            }        }        validate();    }    /**     * The video/control component panel needs to be repositioned to sit     * in the middle of the applet window.     */    void repositionPanel(int width, int height) {        panel.setBounds(0,                        0,                        width,                        height);        panel.validate();    }    public void update( ReceiveStreamEvent event){        SessionManager source =(SessionManager)event.getSource();        Player newplayer = null;        // create a new player if a new recvstream is detected        if (event instanceof NewReceiveStreamEvent){            try{                ReceiveStream stream = ((NewReceiveStreamEvent)event).getReceiveStream();                DataSource dsource = stream.getDataSource();                newplayer = Manager.createPlayer(dsource);            }catch (Exception e){          System.err.println("RTPPlayerApplet Exception " + e.getMessage());          e.printStackTrace();            }            if (newplayer == null){                return;            }            // if this is the first video player, we need to listen to            // its events. Add me as a ControllerListener before            // starting the player            if (source == videomgr){                if (videoplayer == null){                    videoplayer = newplayer;                    newplayer.addControllerListener(this);                    newplayer.start();                }                               else{// controller listener and start is taken care of                    // in playerWindiow                     if (playerlist != null)                        playerlist.addElement((Object)newplayer);                    new PlayerWindow(newplayer);                }            }// if (source == videomgr)            if (source == audiomgr){                if (playerlist != null)                        playerlist.addElement((Object)newplayer);                new PlayerWindow(newplayer);            }        }// if (event instanceof NewReceiveStreamEvent)                if (event instanceof RemotePayloadChangeEvent){            // we received a payload change event. If a player was not            // created for this ReceiveStream, create a player. If the            // player already exists, RTPSM and JMF have taken care of            // switching the payloads and we dont do anything.            // If this is the first video player add me as the            // controllerlistener before starting the player, else            // just create a new player window.        }            }// end of RTPSessionUpdate            private SessionManager StartSessionManager(String destaddrstr,                                                  int port,                                                  String media){        // this method create a new RTPSessionMgr and adds this applet        // as a SessionListener, before calling initSession() and startSession()        SessionManager mymgr = new RTPSessionMgr();        if (media.equals("video"))            videomgr = mymgr;        if (media.equals("audio"))            audiomgr = mymgr;        if (mymgr == null)            return null;        mymgr.addReceiveStreamListener(this);        //if (media.equals("audio"))        //  EncodingUtil.Init((SessionManager)mymgr);                // for initSession() we must generate a CNAME and fill in the        // RTP Session address and port        String cname = mymgr.generateCNAME();        String username = "jmf-user";        SessionAddress localaddr = new SessionAddress();                try{            destaddr = InetAddress.getByName(destaddrstr);        }catch (UnknownHostException e){            System.err.println("inetaddress " + e.getMessage());            e.printStackTrace();        }            SessionAddress sessaddr = new SessionAddress(destaddr,                                                           port,                                                           destaddr,                                                           port+1);                SourceDescription[] userdesclist = new SourceDescription[4];        int i;        for(i=0; i< userdesclist.length;i++){            if (i == 0){                userdesclist[i] = new                    SourceDescription(SourceDescription.SOURCE_DESC_EMAIL,                                    "jmf-user@sun.com",                                    1,                                    false);                continue;            }            if (i == 1){                userdesclist[i] = new              SourceDescription(SourceDescription.SOURCE_DESC_NAME,                                    username,                                    1,                                    false);                continue;            }            if ( i == 2){                userdesclist[i] = new                     SourceDescription(SourceDescription.SOURCE_DESC_CNAME,                                          cname,                                      1,                                      false);                continue;            }            if (i == 3){                 userdesclist[i] = new            SourceDescription(SourceDescription.SOURCE_DESC_TOOL,                                  "JMF RTP Player v2.0",                                  1,                                  false);                continue;            }        }// end of for                // call initSession() and startSession() of the RTPsessionManager        try{            mymgr.initSession(localaddr,                              mymgr.generateSSRC(),                              userdesclist,                              0.05,                              0.25);            mymgr.startSession(sessaddr,1,null);        }catch (SessionManagerException e){          System.err.println("RTPPlayerApplet: RTPSM Exception " + e.getMessage());          e.printStackTrace();          return null;        }catch (IOException e){           System.err.println("RTPPlayerApplet: IO Exception " + e.getMessage());           e.printStackTrace();           return null;        }                return mymgr;    }       }// end of class

⌨️ 快捷键说明

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