• ASP.NET网站实现现场直播


    此博文省略了流媒体服务器组建(网络管理员的事)。

    可以先看到截图:

    把下面的js代码,另存为LiveBroadcast.js文件,存在专案中的js目录中:

    LiveBroadcast.js
    function Fulls() {
        try {
            if (document.all.Media.playState == 3) { document.all.Media.fullscreen = 1; }
        }
        catch (e) {
            alert("您已经打开了另一个播放窗口,不能全屏观看,请关闭其它的播放窗口再全屏观看。");
        }
    }

    function checkplay() {
        var i = document.all.Media.playState;
        window.status = "欢迎来到直播室...数据侦测中 ....";
        info.style.display = "";
        info.innerHTML = "   欢迎来到直播室...数据侦测中...   "
        if (i == 10) {
            document.all.Media.Url = strurl;
            window.status = "未发现直播数据,尝试重新连接,请稍候...";
            info.style.display = "";
            info.innerHTML = "   未发现直播数据,尝试重新连接,...   "
        }
        if (i == 1) {
            document.all.Media.Url = strurl;
            window.status = "播放结束..,尝试重新连接..";
            info.style.display = "";
            info.innerHTML = "   播放结束..,尝试重新连接..   "
        }
        if (i == 2) {
            document.all.Media.Url = strurl;
            window.status = "直播断开,系统重新连接,请稍候...";
            info.innerHTML = "   直播暂停,等待中,请稍候...   "
            info.style.display = "";
        }
        if (i == 7) {
            document.all.Media.Url = strurl;
            window.status = "直播断开,系统重新连接,请稍候...";
            info.style.display = "";
            info.innerHTML = "   直播暂停,等待中,请稍候...   "
        }

        if (i == 3) {
            window.status = "已经成功连接到 [Insus.NET网络科技视频直播专用服务器] ,正在获取数据......";
            info.style.display = "none";
        }
        setTimeout("checkplay()", 6000);
    }

    应用样式:

    .chattable {
                border-right
    : #BED6E0 1px solid;
                border-top
    : #BED6E0 1px solid;
                border-left
    : #BED6E0 1px solid;
                border-bottom
    : #BED6E0 1px solid;
                font-size
    : 12px;
                line-height
    : 1.5;
            
    }

    在aspx页面中的head写js和引用js文件,Insus.NET在javascript语言块中,拉了一个literal Web控件,是为了让后台cs能传值给js。

    <head runat="server">
        <title></title>
        <script type="text/javascript">
            
    <asp:Literal ID="Literal1" runat="server"></asp:Literal>
        </script>

        <script src="Js/LiveBroadcast.js"></script>  
    </head>

    下面是aspx body网页内代码,哗,直接Ctrl + C 然后Ctrl + V即可。

    View Code
    <body style="overflow-x: hidden; overflow-y: auto; margin: 2px;" onload="checkplay();">
        <form id="form1" runat="server">
            <div>
                <table style=" 100%; height: 100%; background-color: #ffffff" class="chats"
                    cellspacing
    ="2" cellpadding="0" align="center" border="0">
                    <tr>
                        <td style="height: 173px" align="center">
                            <object style=" 100%; height: 250px" id="Media" classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6"
                                name
    ="Media">
                                <param name="AutoStart" value="-1" />
                                <param name="url" value='<%= LiveBroadcasePath %>' />
                                <param name="stretchToFit" value="1" />
                                <param name="ShowCaptioning" value="1" />
                                <param name="ShowControls" value="1" />
                                <param name="uiMode" value="None" />
                            </object>
                            <div id="info" style="z-index: 101; left: 69px; position: absolute; top: 127px; height: 22px; background-color: snow"
                                class
    ="chattable" align="center">
                                数据处理中...
                            </div>
                        </td>
                    </tr>
                    <tr>
                        <td align="center" style="height: 20px; background-color: black" valign="middle">
                            <table border="0" cellpadding="0" cellspacing="0" style=" 100%">
                                <tr>
                                    <td style=" 81px">
                                        <input id="Button1" onclick="Fulls()" style="height: 22px" type="button" value="全屏观看" />
                                    </td>
                                    <td align="left">
                                        <asp:Label ID="lblTitle" runat="server" ForeColor="White">现场直播测试...</asp:Label>
                                    </td>
                                </tr>
                            </table>
                        </td>
                    </tr>
                </table>
            </div>
        </form>
    </body>

    在.aspx.cs

    View Code
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;

    public partial class LiveBroadcast : System.Web.UI.Page
    {
        private string _LiveBroadcasePath;

        public string LiveBroadcasePath
        {
            get
            {
                return _LiveBroadcasePath;
            }
            set
            {
                _LiveBroadcasePath = value;
            }
        }

        protected void Page_Load(object sender, EventArgs e)
        {    
            Data_Binding();
        }

        private void Data_Binding()
        {
           //媒体流是mms协议。        
            this._LiveBroadcasePath = "mms://61.136.19.228/live4";
            this.Literal1.Text = "var strurl='" + LiveBroadcasePath + "'";
        }
    }
  • 相关阅读:
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    直播丨国产最强音:HTAP融合型分布式数据库EsgynDB架构详解
    20个MySQL高性能架构设计原则(收藏版)
    RocketMQ进阶-延时消息
    Volatility2.6用法
    【LeetCode】112.路径总和(递归和迭代实现,Java)
  • 原文地址:https://www.cnblogs.com/insus/p/2741239.html
Copyright © 2020-2023  润新知