使用.net ashx和querystring在浏览器中嵌入mp4视频

时间:2013-06-28 20:38:15

标签: c# .net video mp4 ashx

我的任务是使用.net ashx,以便能够通过网络浏览器向用户提供视频 视频分别存储在同一服务器上的另一个驱动器中。 F:\视频。 我已经成功地让wmv视频工作,但似乎无法播放mp4格式。 我尝试了多种上下文类型 - video / mpeg,video / x-fla,video / mp4。 当我使用video / x-ms-wmv播放wmv文件时,Windows媒体播放器弹出并播放视频就好了。但是,我被告知我不能使用wmv,因为并非所有用户群都可以使用Windows Media Player。

有人能告诉我代码的缺失/错误,以便我可以播放mp4视频吗?

在我的web.config中 - 我有以下内容:

<urlMappings enabled="true">
  <add url="~/Video.aspx" mappedUrl="~/VideoHandler.ashx"/>
</urlMappings>

我有一个.aspx文件,其中包含指向用户视频的超链接:

<asp:HyperLink ID="Hyperlink2" runat="server" NavigateUrl="~/Video.aspx?File=WRF" Target="_parent">WRF<asp:HyperLink>

我的.ashx文件包含以下内容:

public void ProcessRequest(HttpContext context)
{
    string file = context.Request.QueryString["file"];
    if (file != String.Empty)
    {
        context.Response.ContentType = "video/mp4";
        switch (file)
        {
            case "WRF":
                context.Response.WriteFile("f:\\Videos\\WRF.mp4");                       
                break;
            case "INTRO":
                context.Response.WriteFile("f:\\Videos\\Intro.mp4");
                break;
        }
    }
    else
    {
        context.Response.ContentType = "text/plain";
        context.Response.Write("No file requested");
    }
}

1 个答案:

答案 0 :(得分:0)

哇,在哪里挣扎...

您需要将自己和您的代码仅仅视为您在播放器中播放视频文件的平板。

这里最重要的问题是:MP4视频的格式究竟是什么? ContentType或文件扩展名不会告诉我们有关编码的任何信息。

很可能您的用户群可能无法播放您的特定视频片段。

那么......发生了什么?什么是弹出,是否会抛出错误?