从ASP.Net中的字节数组播放AVI文件

时间:2012-10-10 16:16:38

标签: c# asp.net

  

可能重复:
  Is it possible to use data URIs in video and audio tags?

是否可以播放存储在数据库中的视频文件,就像从db显示图像一样简单?

要显示db中的图像,这就是我使用的;

aspx文件

<asp:Image ID="PicImage" runat="server" />

cs文件

PicImage.Attributes.Add("src", "data:image/png;base64," + Convert.ToBase64String(PictureByteArray));

你认为,我可以在下使用这些内容而不先在服务器中创建文件吗?

<embed src="video.avi" />
<img dynsrc="video.avi" />
<object data="video.avi" type="video/avi" />

我怎样才能做到这一点?

我知道Silverlight不播放.avi文件,但只播放wmv。

1 个答案:

答案 0 :(得分:5)

您可以使用Windows Media Player播放avi文件。这是html代码:

<OBJECT ID="MediaPlayer" WIDTH="320" HEIGHT="160" CLASSID="CLSID:22D6F312-B0F6-11D0-94AB-0080C74C7E95"
 STANDBY="Loading Windows Media Player components..." TYPE="application/x-oleobject">
 <PARAM NAME="FileName" VALUE="yourFile.avi">
 <PARAM name="autostart" VALUE="false">
 <PARAM name="ShowControls" VALUE="true">
 <param name="ShowStatusBar" value="false">
 <PARAM name="ShowDisplay" VALUE="false">
 <EMBED TYPE="application/x-mplayer2" SRC="yourFile.avi" NAME="MediaPlayer"
 WIDTH="320" HEIGHT="160" ShowControls="1" ShowStatusBar="0" ShowDisplay="0" autostart="0"> </EMBED>
 </OBJECT>

也可以使用FlashPlayer。

因为您将文件作为字节数组(数据库源),您需要创建通用处理程序(ashx)以将此文件传输到Media Player。 FileName的Html参数看起来像这样:

<PARAM NAME="FileName" VALUE="handler.ashx?file=yourFile">

确保在ashx处理程序中设置正确的ContentType,如下所示:

context.Response.ContentType = "video/avi";
context.Response.Write(fileData, 0, fileData.Length);

以下是开始使用ashx文件的链接:

http://msdn.microsoft.com/en-us/library/bb398986(v=vs.100).aspx