网络伪装--网络安全

首页 » 技术文章 » 编程技术 » asp.net中多格式视频播放支持
2011-07-03 21:59
投票评分
(1 vote)

asp.net中多格式视频播放支持

收集的反思视频格式各种各样,转换为某一种制定格式不能较好的解决问题。网页中如何支持多格式播放。

方法:创建视频播放器播放类用于播放器的创建或调用,根据不同格式创建或调用不同播放器。下面是收集的常见的几种播放器创建代码供大家参考:
这些内容在Asp.net后台实现,较javascript下创建较安全。

   ///   <summary>   
        ///   flv格式文件播放   
        ///   </summary>   
        ///   <param   name="url"></param>   
        ///   <returns></returns>   
        private static string flv(string url, int width, int height)
        {
            System.Text.StringBuilder sb = new System.Text.StringBuilder();
            sb.Append("<object   codeBase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,22,87\"   ");
            sb.Append("classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" ");
            sb.Append(" height=\"" + height + "\"   width=\"" + width + "\"   >");
            sb.Append("<param   name=\"FlashVars\"   value=\"vcastr_file=" + url + "&LogoText=www.ctpad.net&BufferTime=3&IsAutoPlay=1\">");
            sb.Append("<param   name=\"Movie\"   value=\"http://10.2.20.146/RethinkV2/Flvplayer.swf\">");           
            sb.Append("<param   name=\"allowFullScreen\"   value=\"true\">");
            sb.Append("<param   name=\"WMode\"   value=\"Window\">");
            sb.Append("<param   name=\"Play\"   value=\"1\">");
            sb.Append("<param   name=\"Loop\"   value=\"1\">");
            sb.Append("<param   name=\"Quality\"   value=\"High\">");
            sb.Append("<param   name=\"SAlign\"   value=\"\">");
            sb.Append("<param   name=\"Menu\"   value=\"0\">");
            sb.Append("<param   name=\"Base\"   value=\"\">");
            sb.Append("<param   name=\"AllowScriptAccess\"   value=\"always\">");
            sb.Append("<param   name=\"Scale\"   value=\"ShowAll\">");
            sb.Append("<param   name=\"DeviceFont\"   value=\"0\">");
            sb.Append("<param   name=\"EmbedMovie\"   value=\"0\">");
            sb.Append("<param   name=\"BGColor\"   value=\"\">");
            sb.Append("<param   name=\"SWRemote\"   value=\"\">");
            sb.Append("<param   name=\"MovieData\"   value=\"\">");
            sb.Append("<param   name=\"SeamlessTabbing\"   value=\"1\">");
            sb.Append("<param   name=\"Profile\"   value=\"0\">");
            sb.Append("<param   name=\"ProfileAddress\"   value=\"\">");
            sb.Append("<param   name=\"ProfilePort\"   value=\"0\">");
            sb.Append("<embed   src=\"http://10.2.20.146/RethinkV2/Flvplayer.swf\" flashvars=\"vcastr_file=" + url + "&LogoText=www.ctpad.net\"   height=\"" + height + "\"   width=\"" + width + "\"   quality=\"high\"   pluginspage=\"http://www.macromedia.com/go/getflashplayer\" type=\"application/x-shockwave-flash\"   menu=\"false\">");
            sb.Append("</embed>");
            sb.Append("</object>");

            return sb.ToString();
        }        
         注意:上述代码中的flvplayer.swf为制定的flv播放器。可以自行更换播放器,给出引用的url即可。 

        ///   <summary>   
        ///   wmv格式文件播放   
        ///   </summary>   
        ///   <param   name="url"></param>   
        ///   <returns></returns>   

        private static string wmv(string url, int width, int height)
        {
            System.Text.StringBuilder sb = new System.Text.StringBuilder();

            sb.Append("<object   id=\"WMPlay\"   style=\"WIDTH:   " + width + "px;height:" + height + "px\"   \n");
            sb.Append("classid=\"CLSID:6BF52A52-394A-11D3-B153-00C04F79FAA6\"   type=application/x-oleobject   standby=\"Loading   Windows   Media   Player   components...\"");
            sb.Append("codebase=\"downloads/mediaplayer9.0_cn.exe\"   VIEWASTEXT>\n");
            sb.Append("<param   name=\"URL\"   value='" + url + "'>\n");
            sb.Append("<param   name=\"controls\"   value=\"ControlPanel,StatusBar\">\n");
      
            //sb.Append("<param   name=\"hidden\"   value=\"1\">");
            sb.Append("<param   name=\"ShowControls\"   value=\"1\">\n");
            sb.Append("<param   name=\"rate\"   value=\"1\">\n");
            sb.Append("<param   name=\"balance\"   value=\"0\">\n");
            sb.Append("<param   name=\"currentPosition\"   value=\"0\">\n");
            sb.Append("<param   name=\"defaultFrame\"   value=\"\">\n");
            sb.Append("<param   name=\"playCount\"   value=\"0\">\n");
            sb.Append("<param   name=\"autoStart\"   value=\"1\">\n");
            sb.Append("<param   name=\"currentMarker\"   value=\"0\">\n");
            sb.Append("<param   name=\"invokeURLs\"   value=\"-1\">\n");
            sb.Append("<param   name=\"baseURL\"   value=\"\">\n");
            sb.Append("<param   name=\"volume\"   value=\"85\">\n");
            sb.Append("<param   name=\"mute\"   value=\"0\">\n");
            //sb.Append("<param   name=\"uiMode\"   value=\"mini\">\n");
            sb.Append("<param   name=\"uiMode\"   value=\"full\">\n");
            sb.Append("<param   name=\"stretchToFit\"   value=\"0\">\n");
            sb.Append("<param   name=\"windowlessVideo\"   value=\"0\">\n");
            sb.Append("<param   name=\"enabled\"   value=\"-1\">\n");
            sb.Append("<param   name=\"enableContextMenu\"   value=\"false\">\n");
            sb.Append("<param   name=\"fullScreen\"   value=\"0\">\n");
            sb.Append("<param   name=\"SAMIStyle\"   value=\"\">\n");
            sb.Append("<param   name=\"SAMILang\"   value=\"\">\n");
            sb.Append("<param   name=\"SAMIFilename\"   value=\"\">\n");
            sb.Append("<param   name=\"captioningID\"   value=\"\">\n");


            //当前播放信息,显示是否正在播放,及总播放时间和当前播放到的时间
            sb.Append("<param   name=\"ShowStatusBar\" value=\"1\">\n");
            //是否显示当前播放跟踪条,即当前的播放进度条
            sb.Append("<param   name=\"ShowTracker\" value=\"1\">\n");              
            sb.Append("</object><br>\n");
            return sb.ToString();
        }

        private static string wma(string url, int width, int height)
        {
            System.Text.StringBuilder sb = new System.Text.StringBuilder();

            sb.Append("<object   id=\"WMPlay\"   classid=\"clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95\"   style=\"Z-INDEX:   101;   LEFT:   40px;   WIDTH:   240px;   POSITION:   absolute;   TOP:   32px;   HEIGHT:   248px\"   >");
            sb.Append("<param   name=\"Filename\"   value=\"" + url + "\">");
            sb.Append("<param   name=\"PlayCount\"   value=\"1\">");
            sb.Append("<param   name=\"AutoStart\"   value=\"0\">");
            sb.Append("<param   name=\"ClickToPlay\"   value=\"1\">");
            //sb.Append("<param   name=\"DisplaySize\"   value=\"0\">");   
            sb.Append("<param   name=\"EnableFullScreen   Controls\"   value=\"1\">");
            sb.Append("<param   name=\"ShowAudio   Controls\"   value=\"1\">");
            sb.Append("<param   name=\"EnableContext   Menu\"   value=\"1\">");
            sb.Append("<param   name=\"ShowDisplay\"   value=\"1\">");

            sb.Append("</object>");

            return sb.ToString();

        }
        ///   <summary>   
        ///   avi格式文件播放   
        ///   </summary>   
        ///   <param   name="url"></param>   
        ///   <returns></returns>   
        private static string avi(string url, int width, int height)
        {
            System.Text.StringBuilder sb = new System.Text.StringBuilder();

            sb.Append("<object   id=\"WMPlay\"   width=\"400\"   height=\"200\"   border=\"0\"   classid=\"clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA\">");
            sb.Append("<param   name=\"ShowDisplay\"   value=\"0\">");
            sb.Append("<param   name=\"ShowControls\"   value=\"1\">");
            sb.Append("<param   name=\"AutoStart\"   value=\"1\">");
            sb.Append("<param   name=\"AutoRewind\"   value=\"0\">");
            sb.Append("<param   name=\"PlayCount\"   value=\"0\">");
            sb.Append("<param   name=\"Appearance   value=\"0   value=\"\"\">");
            sb.Append("<param   name=\"BorderStyle   value=\"0   value=\"\"\">");
            sb.Append("<param   name=\"MovieWindowHeight\"   value=\"240\">");
            sb.Append("<param   name=\"MovieWindowWidth\"   value=\"320\">");
            sb.Append("<param   name=\"FileName\"   value=\"" + url + "\">");
            sb.Append("</object>");

            return sb.ToString();
        }

        private static string mpg(string url, int width, int height)
        {
            System.Text.StringBuilder sb = new System.Text.StringBuilder();

            sb.Append("<object   classid=\"clsid:05589FA1-C356-11CE-BF01-00AA0055595A\"   id=\"WMPlay\"   width=\"239\"   height=\"250\">");
            sb.Append("<param   name=\"Filename\"   value=\"" + url + "\"   valuetype=\"ref\">");
            sb.Append("<param   name=\"Appearance\"   value=\"0\">");
            sb.Append("<param   name=\"AutoStart\"   value=\"-1\">");
            sb.Append("<param   name=\"AllowChangeDisplayMode\"   value=\"-1\">");
            sb.Append("<param   name=\"AllowHideDisplay\"   value=\"0\">");
            sb.Append("<param   name=\"AllowHideControls\"   value=\"-1\">");
            sb.Append("<param   name=\"AutoRewind\"   value=\"-1\">");
            sb.Append("<param   name=\"Balance\"   value=\"0\">");
            sb.Append("<param   name=\"CurrentPosition\"   value=\"0\">");
            sb.Append("<param   name=\"DisplayBackColor\"   value=\"0\">");
            sb.Append("<param   name=\"DisplayForeColor\"   value=\"16777215\">");
            sb.Append("<param   name=\"DisplayMode\"   value=\"0\">");
            sb.Append("<param   name=\"Enabled\"   value=\"-1\">");
            sb.Append("<param   name=\"EnableContextMenu\"   value=\"-1\">");
            sb.Append("<param   name=\"EnablePositionControls\"   value=\"-1\">");
            sb.Append("<param   name=\"EnableSelectionControls\"   value=\"0\">");
            sb.Append("<param   name=\"EnableTracker\"   value=\"-1\">");

            sb.Append("<param   name=\"FullScreenMode\"   value=\"0\">");
            sb.Append("<param   name=\"MovieWindowSize\"   value=\"0\">");
            sb.Append("<param   name=\"PlayCount\"   value=\"1\">");
            sb.Append("<param   name=\"Rate\"   value=\"1\">");
            sb.Append("<param   name=\"SelectionStart\"   value=\"-1\">");
            sb.Append("<param   name=\"SelectionEnd\"   value=\"-1\">");
            sb.Append("<param   name=\"ShowControls\"   value=\"-1\">");
            sb.Append("<param   name=\"ShowDisplay\"   value=\"-1\">");
            sb.Append("<param   name=\"ShowPositionControls\"   value=\"0\">");
            sb.Append("<param   name=\"ShowTracker\"   value=\"-1\">");
            sb.Append("<param   name=\"Volume\"   value=\"-480\">");
            sb.Append("</object>");

            return sb.ToString();
        }

        private static string rm(string url, int width, int height)
        {
            System.Text.StringBuilder sb = new System.Text.StringBuilder();
            sb.Append("<object   ID=\"WMPlay\"   codebase=\"downloads/RealPlayer10-5GOLD_cn0302.exe\"   CLASSID=\"clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA\"   HEIGHT=" + height + "   WIDTH=" + width + ">");
            sb.Append("<param   name=\"SRC\"   value=\"" + url + "\">");
            //sb.Append("<param   name=\"_ExtentX\"   value=\"9313\">");   
            //sb.Append("<param   name=\"_ExtentY\"   value=\"7620\">");   
            sb.Append("<param   name=\"AUTOSTART\"   value=\"0\">");
            sb.Append("<param   name=\"SHUFFLE\"   value=\"0\">");
            sb.Append("<param   name=\"PREFETCH\"   value=\"0\">");
            sb.Append("<param   name=\"NOLABELS\"   value=\"0\">");
            sb.Append("<param   name=\"CONTROLS\"   value=\"ImageWindow,ControlPanel,statusbar\">");
            sb.Append("<param   name=\"CONSOLE\"   value=\"Clip1\">");
            sb.Append("<param   name=\"LOOP\"   value=\"0\">");
            sb.Append("<param   name=\"NUMLOOP\"   value=\"0\">");
            sb.Append("<param   name=\"CENTER\"   value=\"0\">");
            sb.Append("<param   name=\"MAINTAINASPECT\"   value=\"0\">");
            sb.Append("<param   name=\"BACKGROUNDCOLOR\"   value=\"#000000\">");
            //sb.Append("<embed   SRC   type=\"audio/x-pn-realaudio-plugin\"   CONSOLE=\"Clip1\"   CONTROLS=\"ImageWindow\"   HEIGHT=\"250\"   WIDTH=\"354\"   AUTOSTART=\"false\">");   
            sb.Append("</object>");

            return sb.ToString();
        }

        private static string swf(string url, int width, int height)
        {
            System.Text.StringBuilder sb = new System.Text.StringBuilder();


            sb.Append("<object   codeBase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,22,87\"   ");
            sb.Append("   height=\"" + height + "\"   width=\"" + width + "\"   >");
            sb.Append("<param   name=\"FlashVars\"   value=\"\">");
            sb.Append("<param   name=\"Movie\"   value=\"" + url + "\">");
            sb.Append("<param   name=\"Src\"   value=\"" + url + "\">");
            sb.Append("<param   name=\"WMode\"   value=\"Window\">");
            sb.Append("<param   name=\"Play\"   value=\"-1\">");
            sb.Append("<param   name=\"Loop\"   value=\"-1\">");
            sb.Append("<param   name=\"Quality\"   value=\"High\">");
            sb.Append("<param   name=\"SAlign\"   value=\"\">");
            sb.Append("<param   name=\"Menu\"   value=\"0\">");
            sb.Append("<param   name=\"Base\"   value=\"\">");
            sb.Append("<param   name=\"AllowScriptAccess\"   value=\"always\">");
            sb.Append("<param   name=\"Scale\"   value=\"ShowAll\">");
            sb.Append("<param   name=\"DeviceFont\"   value=\"0\">");
            sb.Append("<param   name=\"EmbedMovie\"   value=\"0\">");
            sb.Append("<param   name=\"BGColor\"   value=\"\">");
            sb.Append("<param   name=\"SWRemote\"   value=\"\">");
            sb.Append("<param   name=\"MovieData\"   value=\"\">");
            sb.Append("<param   name=\"SeamlessTabbing\"   value=\"1\">");
            sb.Append("<embed   src=\"" + url + "\"   height=\"" + height + "\"   width=\"" + width + "\"   quality=\"high\"   pluginspage=\"http://www.macromedia.com/go/getflashplayer\"type=\"application/x-shockwave-flash\"   menu=\"false\">"); sb.Append("</embed>");
            sb.Append("</object>");

            return sb.ToString();
        }

播放器创建的时候通过构造函数和视频文件后缀名来确定创建对应播放器。

public static string Play(string url, int width, int height)
        {
            string strTmp = url.ToLower();
         //switch更好
            if (strTmp.EndsWith(".wmv") || strTmp.EndsWith(".mp3") || strTmp.EndsWith(".wma") || strTmp.EndsWith(".avi") || strTmp.EndsWith(".asf") || strTmp.EndsWith(".mpg"))
            {
                return wmv(url, width, height);
            }
            else if (strTmp.EndsWith(".swf"))
            {
                return swf(url, width, height);
            }
            else if (strTmp.EndsWith(".flv"))
            {
                return flv(url, width, height);
            }
            else if (strTmp.EndsWith(".rm"))
            {
                return rm(url, width, height);
            }
            else
            {
                return "视频文件数据错误";
            }
        }
调用方法:
前台:<div id="video_content" runat="server" style=""></div>
后台:this.video_content.InnerHtml = Player.Play(VideoURL, 600, 450);

最后修改日期: 2011-07-03 22:27
该分类的更多文章: « 缓冲区溢出原理
Login to post comments