亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? avreceivermais.java

?? java 開發的sip軟電話 源碼 jain sip
?? JAVA
字號:
package net.java.mais.media;

/**
 * <p>Title: Netsite TudoMais</p>
 * <p>Description:JAIN-SIP Audio/Video phone application</p>
 * <p>Copyright: Copyright (c) 2006</p>
 * <p>Organisation: CTBC Telecom / Netsite </p>
 * @author Thiago Rocha Camargo (barata7@yahoo.com)
 */

import java.net.InetAddress;
import java.util.ArrayList;

import javax.media.CaptureDeviceInfo;
import javax.media.CaptureDeviceManager;
import javax.media.ControllerClosedEvent;
import javax.media.ControllerErrorEvent;
import javax.media.ControllerEvent;
import javax.media.ControllerListener;
import javax.media.Manager;
import javax.media.Player;
import javax.media.Processor;
import javax.media.RealizeCompleteEvent;
import javax.media.StartEvent;
import javax.media.control.BufferControl;
import javax.media.format.AudioFormat;
import javax.media.protocol.DataSource;
import javax.media.rtp.Participant;
import javax.media.rtp.RTPControl;
import javax.media.rtp.RTPManager;
import javax.media.rtp.ReceiveStream;
import javax.media.rtp.ReceiveStreamListener;
import javax.media.rtp.SendStream;
import javax.media.rtp.SendStreamListener;
import javax.media.rtp.SessionAddress;
import javax.media.rtp.SessionListener;
import javax.media.rtp.event.ActiveReceiveStreamEvent;
import javax.media.rtp.event.ByeEvent;
import javax.media.rtp.event.NewParticipantEvent;
import javax.media.rtp.event.NewReceiveStreamEvent;
import javax.media.rtp.event.ReceiveStreamEvent;
import javax.media.rtp.event.SendStreamEvent;
import javax.media.rtp.event.SessionEvent;
import javax.media.rtp.event.StreamMappedEvent;

import net.java.mais.common.Utils;

class AVReceiverMais
    implements ReceiveStreamListener, SessionListener,
    ControllerListener, SendStreamListener
{
    private DataSource dataSource = null;
    net.java.mais.media.MediaManager mediaManager;
    ArrayList sessions = null;
    RTPManager mgrs[] = null;
    RTPManager rtpMan = null;
    boolean dataReceived = false;
    Object dataSync = new Object();

    private int bindRetries = 1;
    public static final int DEFAULT_BUFFER_LENGTH = 350;

    public AVReceiverMais(ArrayList sessions, RTPManager rtpMan)
    {
//    	JOptionPane.showMessageDialog(null,Thread.currentThread().getName());
        this.sessions = sessions;
        this.rtpMan = rtpMan;
        String retries = null;
        if((retries = Utils.getProperty("net.java.mais.media.RECEIVER_BIND_RETRIES")) != null)
            try {
                bindRetries = Integer.valueOf(retries).intValue();
            }
            catch (NumberFormatException ex) {

            }
    }

    void setMediaManager(MediaManager mManager)
    {
        this.mediaManager = mManager;
    }

    protected boolean initialize()
    {
        try {
             
            InetAddress ipAddr;
            SessionAddress localAddr = new SessionAddress();
            SessionAddress destAddr;
            SessionLabel session;
            // Open the RTP sessions.
            for (int i = 0; i < sessions.size(); i++) {
                // Parse the session addresses.
                try {
                    session = new SessionLabel((String)sessions.get(i));
                }
                catch (IllegalArgumentException e) {
                     
                    return false;
                }
                               
                rtpMan.addSessionListener(this);
                rtpMan.addReceiveStreamListener(this);
                rtpMan.addSendStreamListener(this);                
                
                ipAddr = InetAddress.getByName(session.addr);
                int tries = 0;
                while (tries++ < bindRetries)
                {
                    if (ipAddr.isMulticastAddress()) {
                        // local and remote address pairs are identical:
                        localAddr = new SessionAddress(ipAddr,
                        		/*AVTransmitter.thePort*/session.port,
                            session.ttl);
                        destAddr = new SessionAddress(ipAddr,
                        		/*AVTransmitter.thePort*/session.port,
                        		session.ttl);
                         
                    }
                    else {
                        localAddr = new SessionAddress(mediaManager.
                            getLocalHost(),
                            /*AVTransmitter.thePort*/session.port);
                        destAddr = new SessionAddress(ipAddr, session.port);
                         
                        // 
                    }
/*                    try {
                        mgrs[i].initialize(localAddr);
                    }
                    catch (Exception exc) {
                        if (tries < bindRetries) {
                            continue;
                        }
                        console.error(
                            "Could not initialize rtp manager!",exc);
                        return false;
                    }
  */                  
                    // You can try out some other buffer size to see
                    // if you can get better smoothness.
                    BufferControl bc = (BufferControl) rtpMan.getControl(
                        "javax.media.control.BufferControl");
                    if (bc != null) {
                        int bl = DEFAULT_BUFFER_LENGTH;
                        try {
                            bl = Integer.parseInt(Utils.getProperty(
                                "net.java.mais.media.MEDIA_BUFFER_LENGTH"));
                             
                        }
                        catch (NumberFormatException ex) {
                             
                        }

                        bc.setBufferLength(bl);
                    }
                    
//                    mgrs[i].removeTarget(destAddr,"NO");    
//                    mgrs[i].addTarget(destAddr);
                     
                    break; //port retries
                } //port retries
            }
        }
        catch (Exception e) {
             
             
            return false;
        }
         
        return true;
    }

    public boolean isDone()
    {
        return false;
    }

    /**
     * Close the players and the session managers.
     */
    protected void close()
    {
        try {
             
            // close the RTP session.
            for (int i = 0; i < mgrs.length; i++) {
                if (mgrs[i] != null) {
                    
                    mgrs[i].removeTargets("Closing session from AVReceiver");
                    mgrs[i].dispose();
                    mgrs[i] = null;
                }
            }
        }
        finally {
             
        }
    }

    /**
     * SessionListener.
     * @todo I have the imperssion we're missing an event here.
     */
    public synchronized void update(SessionEvent evt)
    {
        try {
             
            if (evt instanceof NewParticipantEvent) {
                Participant p = ( (NewParticipantEvent) evt).getParticipant();
            }
            else {
            }
        }
        finally {
        }
    }

    public synchronized void update(ActiveReceiveStreamEvent evt)
    {
        try {
       	
        }catch(Exception e){
        	
        }finally{
        }
    }
    
    /**
     * ReceiveStreamListener
     */
    public synchronized void update(ReceiveStreamEvent evt)
    {
        try {
            RTPManager mgr = (RTPManager) evt.getSource();
            Participant participant = evt.getParticipant(); // could be null.
            ReceiveStream stream = evt.getReceiveStream(); // could be null.            
            if (evt instanceof NewReceiveStreamEvent) {
                try {
                    stream = ( (NewReceiveStreamEvent) evt).getReceiveStream();
                    DataSource ds = stream.getDataSource();
                    // Find out the formats.
                    RTPControl ctl = (RTPControl) ds.getControl(
                        "javax.media.rtp.RTPControl");
                    Player p = Manager.createPlayer(ds);
                    p.addControllerListener(this);
                    p.realize();
                    
                }
                catch (Exception e) {
                    return;
                }
            }
            else if (evt instanceof StreamMappedEvent) {
                if (stream != null && stream.getDataSource() != null) {
                    DataSource ds = stream.getDataSource();
                    // Find out the formats.
                    RTPControl ctl = (RTPControl) ds.getControl(
                        "javax.media.rtp.RTPControl");
                }
            }
            else if (evt instanceof ByeEvent) {

            }else{

            }
        }
        finally {

        }
    }

    /**
     * ControllerListener for the Players.
     */
    public synchronized void controllerUpdate(ControllerEvent ce)
    {
        try {
             
            Player p = (Player) ce.getSourceController();
            if (p == null) {
                return;
            }
            // Get this when the internal players are realized.
            if (ce instanceof RealizeCompleteEvent) {
                p.start();
            }
            if (ce instanceof StartEvent) {  
                mediaManager.firePlayerStarting(p);
            }
            if (ce instanceof ControllerErrorEvent) {
            }
            if (ce instanceof ControllerClosedEvent) {
                mediaManager.firePlayerStopped();
            }
        }
        finally {
             
        }
    }

    /**
     * A utility class to parse the session addresses.
     */
    class SessionLabel
    {
        public String addr = null;
        public int port;
        public int remotePort;
        public int ttl = 1;
        public String content;
         
        SessionLabel(String session) throws IllegalArgumentException
        {
            try {
                 
                String list[] = new String[5]; 
                list = session.split("/");
               
                for(int i=0;i<5;i++)
                	if(list[i]==null)
                    throw new IllegalArgumentException();
                    
               addr = list[0];
               port = Integer.parseInt(list[1]);
               remotePort = Integer.parseInt(list[2]);
               ttl = Integer.parseInt(list[3]);
               content = list[4];
                    
            }
            finally {
            }
        }
    }

    public void update(SendStreamEvent event)
    {
    }

    /*
        private DataSource addDataSource(DataSource newDataSource)
        {
            if (dataSource == null) {
                dataSource = newDataSource;
            }
            else {
                try {
         dataSource = Manager.createMergingDataSource(new DataSource[] {
                        dataSource,
                        newDataSource
                    });
                }
                catch (IncompatibleSourceException ex) {
                    Console.println(
         "[AVReceiver]Failed to create a merging datasource. Old one is ignored!");
                    dataSource = newDataSource;
                }
            }
            return dataSource;
        }
     */
    
    
    public static void main(String argv[]){
    
    	try{	
    		SessionAddress localAddr = new SessionAddress(InetAddress.getByName(argv[3]), Integer.parseInt(argv[1]));
    		SessionAddress destAddr = new SessionAddress(InetAddress.getByName(argv[4]), Integer.parseInt(argv[2]));
    		   		
		 CaptureDeviceInfo videoDevice = (CaptureDeviceInfo) CaptureDeviceManager.getDeviceList(new
                 AudioFormat(AudioFormat.LINEAR, 44100, 16, 1)).get(0);
		 
		 
		 
         DataSource videoDataSource = Manager.createDataSource(videoDevice.getLocator());
         
         videoDataSource.connect();
         Processor processor = Manager.createProcessor(videoDataSource);
         
 		RTPManager rtpMan = RTPManager.newInstance();
 		rtpMan.initialize(localAddr);                        
        rtpMan.addTarget(destAddr);

        SendStream sendStream= rtpMan.createSendStream(processor.getDataOutput(),0);
        sendStream.setBitRate(56000);
        sendStream.start();         
         
        Thread.currentThread().sleep(2000);
        
    	}catch(Exception e){
    	
    		System.out.println("ERRO: "+e.toString());
    		
    	}   	
    	
    	
    	
    }
        
} // end of AVReceive2

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美成人一区二区三区| 欧美一级视频精品观看| 日韩精品专区在线影院观看 | 粉嫩av一区二区三区粉嫩| 欧美性极品少妇| 国产精品久久久一本精品 | 亚洲欧美成人一区二区三区| 国产一区二区三区蝌蚪| 制服.丝袜.亚洲.另类.中文 | 久久蜜桃av一区精品变态类天堂| 亚洲午夜精品网| 91免费小视频| 中文字幕免费观看一区| 国产一区二区网址| 日韩免费看的电影| 日韩和欧美一区二区三区| 色视频一区二区| 日韩伦理av电影| 成人99免费视频| 欧美国产欧美综合| 国产91精品免费| 国产欧美一二三区| 国产高清精品网站| 久久精品一区八戒影视| 国产精品一色哟哟哟| 精品国产成人在线影院 | 亚洲精品免费看| 91免费在线看| 亚洲精品视频在线| 99精品国产91久久久久久| 亚洲欧洲成人av每日更新| 成人看片黄a免费看在线| 国产天堂亚洲国产碰碰| 国产成人精品www牛牛影视| 久久精品亚洲麻豆av一区二区 | 成人午夜激情影院| 国产精品欧美极品| 99久久er热在这里只有精品15 | 国产精品福利在线播放| 99精品视频一区二区三区| 日韩美女视频一区二区| 91麻豆成人久久精品二区三区| 中文字幕亚洲欧美在线不卡| 91日韩一区二区三区| 一区二区三区欧美激情| 欧美日韩aaaaaa| 欧美aⅴ一区二区三区视频| 欧美一区二区在线视频| 免费一区二区视频| 久久久综合激的五月天| 国产suv精品一区二区三区| 国产精品久久久久久久午夜片| 99这里只有精品| 亚洲综合在线第一页| 51久久夜色精品国产麻豆| 麻豆精品久久久| 久久精品亚洲麻豆av一区二区 | 欧美日韩一本到| 奇米色一区二区三区四区| 久久综合狠狠综合久久激情 | 午夜激情一区二区三区| 欧美大尺度电影在线| 国产乱码字幕精品高清av| 国产精品久久一级| 欧美亚洲精品一区| 久久精品久久精品| 欧美激情综合五月色丁香小说| 91丝袜呻吟高潮美腿白嫩在线观看| 亚洲一区二区黄色| 精品国产三级电影在线观看| 成人午夜碰碰视频| 亚洲sss视频在线视频| www国产精品av| 91免费看片在线观看| 偷拍一区二区三区| 久久久精品综合| 色综合久久久久网| 久久精品久久精品| 亚洲欧美在线视频| 欧美一区欧美二区| eeuss鲁一区二区三区| 亚洲1区2区3区4区| 久久久久97国产精华液好用吗| 色综合天天综合网国产成人综合天 | 国产人妖乱国产精品人妖| 91福利在线播放| 精品在线观看视频| 亚洲免费在线播放| 欧美精品一区二区三区在线播放| 成人免费视频国产在线观看| 亚洲成av人影院| 久久久777精品电影网影网| 91黄色在线观看| 国产麻豆91精品| 午夜激情综合网| 中文字幕中文字幕一区二区| 91麻豆精品国产自产在线| 成人国产免费视频| 另类成人小视频在线| 亚洲男人的天堂av| 久久久久久影视| 欧美精品丝袜中出| 99v久久综合狠狠综合久久| 六月婷婷色综合| 亚洲韩国精品一区| 国产精品久久久久久久久久免费看| 日韩手机在线导航| 欧美午夜理伦三级在线观看| 丁香天五香天堂综合| 看片网站欧美日韩| 午夜伊人狠狠久久| 亚洲色图.com| 国产欧美日韩在线观看| 日韩丝袜美女视频| 欧美日韩另类国产亚洲欧美一级| heyzo一本久久综合| 国产一区二区三区在线观看精品 | 日韩精品国产欧美| 一区二区三区在线观看网站| 欧美国产精品一区| 精品久久一区二区| 91麻豆精品国产自产在线 | 欧美视频日韩视频| 91免费在线播放| 国产成人综合网| 久久99精品国产麻豆婷婷| 午夜精品久久久久久久蜜桃app| 国产精品美女久久久久久2018| 欧美mv日韩mv| 日韩欧美一二区| 777久久久精品| 欧美美女黄视频| 精品视频免费在线| 在线观看区一区二| 91老师国产黑色丝袜在线| 盗摄精品av一区二区三区| 国产一二三精品| 国产在线播放一区三区四| 美女视频黄 久久| 免费看日韩a级影片| 日本欧美一区二区| 日本三级亚洲精品| 日韩精品91亚洲二区在线观看| 午夜视频在线观看一区二区| 亚洲综合色视频| 亚洲国产综合人成综合网站| 久久国产精品99精品国产| 日韩精品电影一区亚洲| 日韩极品在线观看| 日本美女视频一区二区| 免费视频最近日韩| 日韩成人免费电影| 日韩电影免费在线| 青青草97国产精品免费观看无弹窗版 | 精品sm捆绑视频| 日韩欧美色电影| 2021国产精品久久精品| 亚洲精品一区二区三区福利| 精品国产伦一区二区三区观看体验| 日韩欧美国产小视频| 精品蜜桃在线看| 久久九九影视网| 国产精品日产欧美久久久久| 亚洲国产电影在线观看| 中文字幕在线不卡一区| 亚洲蜜臀av乱码久久精品| 亚洲激情av在线| 视频一区二区三区入口| 麻豆精品久久精品色综合| 国产一区二区三区在线观看精品| 高清免费成人av| 一本大道久久a久久综合| 欧美午夜一区二区| 日韩免费观看高清完整版| 久久久久久麻豆| 一区在线中文字幕| 亚洲电影一级片| 精东粉嫩av免费一区二区三区| 国产精品白丝av| 色哟哟国产精品| 欧美一区二区三区在线观看视频| www国产成人| 亚洲色图制服丝袜| 图片区日韩欧美亚洲| 国内一区二区在线| 99久精品国产| 欧美美女一区二区在线观看| 久久久久久久性| 亚洲色图.com| 美女网站在线免费欧美精品| 国产成人一区在线| 91精彩视频在线观看| 日韩免费观看高清完整版在线观看| 国产欧美一区二区精品性色| 一区二区三国产精华液| 美美哒免费高清在线观看视频一区二区| 国产精品18久久久久久久网站| 99精品欧美一区二区蜜桃免费| 337p亚洲精品色噜噜噜| 中文字幕欧美国产|