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

C# 使用.net ashx和querystring在浏览器中嵌入mp4视频,c#,.net,video,mp4,ashx,C#,.net,Video,Mp4,Ashx,我的任务是使用.net ashx,通过web浏览器向用户提供视频。 视频分别存储在同一服务器上的另一个驱动器中。F:\视频。 我已经成功地让wmv视频工作,但似乎无法得到mp4格式的播放。 我尝试了多种上下文类型-视频/mpeg、视频/x-fla、视频/mp4。 当我使用video/x-ms-wmv播放wmv文件时,Windows media player会弹出并播放视频。然而,有人告诉我,我不能使用wmv,因为并不是所有的用户都能使用Windows Media Player 有人能告诉我代码有

我的任务是使用.net ashx,通过web浏览器向用户提供视频。
视频分别存储在同一服务器上的另一个驱动器中。F:\视频。 我已经成功地让wmv视频工作,但似乎无法得到mp4格式的播放。 我尝试了多种上下文类型-视频/mpeg、视频/x-fla、视频/mp4。 当我使用video/x-ms-wmv播放wmv文件时,Windows media player会弹出并播放视频。然而,有人告诉我,我不能使用wmv,因为并不是所有的用户都能使用Windows Media Player

有人能告诉我代码有什么遗漏/错误,以便我可以播放mp4视频吗

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

<urlMappings enabled="true">
  <add url="~/Video.aspx" mappedUrl="~/VideoHandler.ashx"/>
</urlMappings>
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");
    }
}

哇,去哪里

你需要把你自己和你的代码仅仅看作是一个盘子,在上面你正在播放一个视频文件

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

很可能是您的用户群无法播放特定的视频剪辑

所以。。。发生了什么事?出现了什么,是不是抛出了错误

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");
    }
}