Rtp 协议实现网络广播台网络收音机

RTP协议介绍:http://www.360doc.com/content/11/1009/15/496343_154624612.shtml

本文中使用了 StreamCoders 的 RTP.net组件,此组件中有些和c++ 混合编程部分,我已将此组件转成全部c#代码

收听端代码

RTPSession session;
        RTPReceiver receiver;
        RTPParticipant participant;

        WinSound.Player m_Player;
        public Form1()
        {
            InitializeComponent();
            m_Player = new WinSound.Player();
            List<String> names = WinSound.WinSound.GetPlaybackNames();
            m_Player.Open(names[0], 44100, 16, 2, 8);
        }

        private void btnListen_Click(object sender, EventArgs e)
        {
            IPAddress ipaddr;
            ushort usPort;

            if (!(IPAddress.TryParse(txtIp.Text, out ipaddr) && ushort.TryParse(txtPort.Text, out usPort)))
            {
                MessageBox.Show("IP地址或端口填写错误!");
                return;
            }
            session = new RTPSession();
            receiver = new RTPReceiver();
            IPEndPoint rtpEp = new IPEndPoint(ipaddr, usPort);

            participant = new RTPParticipant(rtpEp);
            session.NewRTPPacket = NewRTPPacket;
            session.NewRTCPPacket = NewRTCPPacket;
            receiver.AddParticipant(participant);
            session.AddReceiver(receiver);
        }

        bool NewRTPPacket(RTPPacket packet)
        {
            if (packet.DataPointer != null)
            {
                //Nach Linear umwandeln
                Byte[] linearBytes = WinSound.Utils.MuLawToLinear(packet.DataPointer, 16, 2);
                //Abspielen
                m_Player.PlayData(linearBytes, false);
            }
            return true;

        }

Rtp 协议实现网络广播台网络收音机

全部源码可有偿提供
原文链接: https://www.cnblogs.com/gxh973121/p/3154016.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/93440

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月10日 上午2:09
下一篇 2023年2月10日 上午2:09

相关推荐