asp页面播放视频等文件

来源:互联网 发布:盯盯软件怎么使用 编辑:程序博客网 时间:2024/05/22 04:30
  1. 不说废话,open code,open doc     
  2. 最终显示视频的页面  Main.aspx.cs
  3.         /// <summary>
  4.         /// 视频播放
  5.         /// </summary>
  6.         /// <param name="Url">文件的URL路径</param>
  7.         /// <param name="Width">宽度</param>
  8.         /// <param name="Height">高度</param>
  9.         /// <param name="FileName">文件名(获取文件后缀名,判断文件类型)</param>
  10.         /// <returns>object标签字符串形式</returns>
  11.         protected string SelectPlay(string Url, string Width, string Height, string FileName)
  12.         {
  13.             string isExt = "";
  14.             StringBuilder sb = new StringBuilder("");
  15.             int i = FileName.LastIndexOf(".");
  16.             isExt = FileName.Substring(i + 1, FileName.Length - i - 1);
  17.             isExt = isExt.ToLower();
  18.             switch (isExt)
  19.             {
  20.                 case "asf":
  21.                 case "wmv":
  22.                 case "wma":
  23.                 case "avi":
  24.                 case "mp3":
  25.                 case "wav":
  26.                 case "mpeg":
  27.                     sb.Append("<object id=/"MediaPlayer/" style=/"WIDTH: " + Width + ";height:" + Height + "/" /n");
  28.                     sb.Append("classid=/"CLSID:6BF52A52-394A-11D3-B153-00C04F79FAA6/" type=application/x-oleobject standby=/"Loading Windows Media Player components.../"");
  29.                     sb.Append("codebase=/"http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,1,5,217/" VIEWASTEXT>/n");
  30.                     sb.Append("<param name=/"URL/" value='" + Url + "'>/n");
  31.                     sb.Append("<param name=/"showstatusbar/" value=/"1/">");
  32.                     sb.Append("<param name=/"autostart/" value=/" 1 /">/n");
  33.                     sb.Append("<param name=/"showcontrols/" value=/"1/">");
  34.                     sb.Append("<param name=/"uimode/" value=/"full/">");
  35.                     sb.Append("<param name=/"windowlessvideo/" value=/"0/">/n");
  36.                     sb.Append("</object><br/>/n");
  37.                     break;
  38.                 case "rm":
  39.                 case "rmvb":
  40.                     sb.Append("<OBJECT id='RealOne' classid='clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA' HEIGHT=" + Height + " WIDTH=" + Width + " VIEWASTEXT>/n");
  41.                     sb.Append("<param name='_ExtentX' value='5503'>/n");
  42.                     sb.Append("<param name='_ExtentY' value='1588'>/n");
  43.                     sb.Append("<param name=/"SRC/" value=/"" + Url + "/">");
  44.                     sb.Append("<param name='AUTOSTART' value='1'>/n");
  45.                     sb.Append("<param name='SHUFFLE' value='0'>/n");
  46.                     sb.Append("<param name='PREFETCH' value='0'>/n");
  47.                     sb.Append("<param name='NOLABELS' value='0'>/n");
  48.                     sb.Append("<param name='CONTROLS' value='ALL'>/n");
  49.                     sb.Append("<param name='LOOP' value='0'>/n");
  50.                     sb.Append("<param name='NUMLOOP' value='0'>/n");
  51.                     sb.Append("<param name='CENTER' value='0'>/n");
  52.                     sb.Append("<param name='MAINTAINASPECT' value='0'>/n");
  53.                     sb.Append("<param name='BACKGROUNDCOLOR' value='#000000'>/n");
  54.                     sb.Append("</OBJECT>");
  55.                     break;
  56.                 case "swf":
  57.                 case "flv":
  58.                     sb.Append("<OBJECT codeBase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=4,0,2,0' classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' width='" + Width + "' height='" + Height + "'> ");
  59.                     sb.Append("<PARAM NAME='movie' VALUE='" + Url + "'> ");
  60.                     sb.Append("<PARAM NAME='play' VALUE='true'> ");
  61.                     sb.Append("<PARAM NAME='quality' VALUE='high'> ");
  62.                     sb.Append("<embed src='" + Url + "' quality='high' pluginspage='http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash' type='application/x-shockwave-flash' width='" + Width + "' height='" + Height + "'></embed> ");
  63.                     sb.Append("</OBJECT> ");
  64.                     break;
  65.                 default:
  66.                     break;
  67.             }
  68.             return sb.ToString();
  69.         }
  70. SelectPlay方法根据参数来判断选择什么样的配置方式,最后将配置好的哦bject标签转换成字符串返回,只要在页面上显示这个字符串就达到效果,共有4个参数,string Width, string Height, 可指定核合适大小 ,string FileName 很容易得到。对于URL并不是直接使用资源(如视频)的地址,而是使用一个专门的页面(这里用的是display.aspx)来读取资源的数据,前面SelectPlay方法里的URL参数指的是该页面的地址(这里就是display.aspx的地址)
  71. 则可以在Main.aspx.cs如下编写(并非完整代码):
  72. protected void Page_Load(object sender, EventArgs e)
  73. {   
  74.     string  strObjectCode = “”;
  75.     if (!IsPostBack)
  76.     {
  77.         string strFilePath=”表示文件的路径”;
  78.         string strFileName = “example.rmvb”; //从strFilePath中可得
  79.   
  80.         //object 控件中使用的URL
  81.         String strObjectURL = “display.aspx” + “?FilePath=” +  strFilePath;
  82.         strObjectCode = SelectPlay(strObjectURL, “500px”, “400px” , strFileName);
  83. }
  84.         }
  85. 不考虑display.aspx的代码,若要播放视频等文件,只需要在main.aspx上添加依据代码即可,如下:
  86.     <%= strObjectCode %>
  87. strObjectCode中包含的就是SelectPlay处理过的object控件编码
  88. 但真正运行显然还要完成display.aspx,此页面很简单,前面我也有过关于如何显示以image格式保存在数据库中的图片的方式,实际上和这里大同小异,display.aspx的作用就是读取指定资源的数据到内存中,在把它当作response发送到页面上去(即display.aspx页面),这里显示图片时是image标签捕获和显示了这些数据,这里只不过换成了哦bject标签罢了。
  89. 代码(display.aspx.cs  >  page_load中):
  90. String strFilePath = Request[“FilePath”];
  91. System.IO.FileInfo file = new System.IO.FileInfo(strFilePath);
  92. if (file.Exists)
  93. {
  94. Response.Clear();
  95. Response.AddHeader("Content-Disposition","attachment; FileName=" + file.Name);
  96. Response.AddHeader("Content-Length", file.Length.ToString());
  97. Response.ContentType = "application/octet-stream";
  98. Response.Filter.Close();
  99. Response.WriteFile(file.FullName);
  100. Response.End();
  101. }
  102. 至于display.aspx本身是一个普通的空的页面不需要任何具体内容
  103. 这样依靠这两个页面就可以实现如本文标题所说的功能
  104. (文中的字母可能有大小写误差,盖因在下并非在ide中写此代码,是在word中完成此文,请注意)
原创粉丝点击