zoukankan      html  css  js  c++  java
  • 【RTP.NET入门系列 一】接收第一个RTP包。

    首先下载组件下载地址:http://streamcoders.com/pub/RTP.NET.1.0.981.zip

    文件目录如下:

    很容易理解:

    RtpNetCsharp是它的简单的例子,例子是命令行的,很简单。

    RTP.NET.DLL就是它的类库,把它拷贝到你项目里面然后引入到项目中。

    RTP.NET.HELP.CHM是它的帮助文件,很想MSDN的格式,没有任何示例代码仅仅是类及成员的说明。

    将RTP.NET.DLL引入项目中,如图:

    image
    官网上下载显示的版本号是1.0.981。加载到.netl里面显示版本号为:1.5.981.29483。不要奇怪刚才说了,这个组件是MediaSuite.NET里面一个组件,而1.5.981.29483这个版本号实际上是MediaSuite.NET这个版本号。

    说说它的使用,其实网站上有相关代码提示,我也是说一下。
    RTP.Net核心几个类:

    RTPSession 管理RTP会话的

    RTPReceiver 负责接收RTP包,通过一个类似事件的机制。

    RTPSender 负责发送RTP包

    RTPParticipant 设置你要通信的RTP伙伴

     

    下面我们就来接受我们第一个RTP包。

    它工作的流程是:

    首先创建一个RTP会话,

    然后指定一个RTP伙伴,即你的接收端,创建一个RTP接收类,将刚才RTP伙伴加入接收类中

    再者创建接受函数并将RTP会话的接受包代理指向此函数

    最后把接收者类加入到RTP会话中就行了。RTP.NET就会启动它后台线程自动接受RTP包了。

    通过类似事件的方式获取RTP包的。确实很简单,如下:

    session.NewRTPPacket = NewRTPPacket;
    bool NewRTPPacket(RTPPacket packet, byte[] rawBuffer)
    {
           Console.WriteLine(packet.ToString());
           
    return true;
    }

    所有接收代码如下:

    	RTPSession session;
            RTPReceiver receiver;
            RTPParticipant participant;
    
            public Form1()
            {
                InitializeComponent(); 
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                session = new RTPSession();
                receiver = new RTPReceiver();
    IPEndPoint rtpEp= new IPEndPoint(IPAddress.Parse("192.168.0.203"), 10000); IPEndPoint rtcpEp = new IPEndPoint(IPAddress.Parse("192.168.0.203"), 10001); participant = new RTPParticipant(rtpEp,null,null,null);
    session.NewRTPPacket = NewRTPPacket; session.NewRTCPPacket = NewRTCPPacket; receiver.AddParticipant(participant); session.AddReceiver(receiver); }
    bool NewRTPPacket(RTPPacket packet, byte[] rawBuffer) { Console.WriteLine(packet.ToString()); return true; } void NewRTCPPacket(RTCPCompoundPacket packet) { Console.WriteLine(packet.ToString()); }

    其中我要说明的是participant = new RTPParticipant(rtpEp,null,null,null);
    这个函数的具体有四个参数具体声明如下:

    public RTPParticipant(IPEndPoint rtpLocalEndpoint, IPEndPoint rtpRemoteEndpoint, IPEndPoint rtcpLocalEndpoint, IPEndPoint rtcpRemoteEndpoint);

    从声明中可以看到分为四个IP节点分别为本地rtp、远程rtp、本地rtcp、远程rtcp

    从上面的代码可以看出,这个RTP.NET的使用是比较简单的。

    当然它的功能是比较多,我这里只是一个引入,大家可以自己深入研究。

    =========================================
    目录页连接:【RTP.NET入门系列 前言】微软推荐的最好用的RTP组件,免费哦。
  • 相关阅读:
    邻接矩阵学习
    Spark on Yarn年度知识整理
    HBASE解析
    Storm的数据处理编程单元:Bolt 学习整理
    jsch ssh服务器调用Linux命令或脚本的小问题
    storm的数据源编程单元Spout学习整理
    Java 正则表达式详细使用
    【转】如何成为一个技术全面的架构师
    【转】Linux netstat命令详解,高级面试必备
    【转】Servlet 生命周期、工作原理
  • 原文地址:https://www.cnblogs.com/edzjx/p/1702922.html
Copyright © 2011-2022 走看看