c# - WMV 流媒体文件大小限制

标签 c# asp.net-mvc-4 video-streaming wmv

我的网页 View 中嵌入了一个 Windows 媒体播放器:

 <div id="divCourseVideo" style="width:100%;margin:0 auto;" class="container">
        <OBJECT style="display:inline-block" ID="CoursePlayer" HEIGHT="400" WIDTH="400" CLASSID="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6" type="video/x-ms-wmv">
            <param name='URL' value="@Url.Action("ShowMovie", "OLT", new { courseId = Model.ID })" />
            <param name='autoStart' value="true" />
            <param name='currentPosition' value="false" />
            <param name='showControls' value="true" />
        </OBJECT>


    </div>

ShowMovie 操作从数据库中提取视频流并将其发送到 View :

 public void ShowMovie(string courseId)
    {
        CourseVideo video = Repository.GetCourseVideoStream(courseId);
        var bytesinfile = new byte[video.VideoStream.Length];
        video.VideoStream.Read(bytesinfile, 0, (int)video.VideoStream.Length);
        ControllerContext.HttpContext.Response.BinaryWrite(bytesinfile);
    }

当我使用大小约为 10K 左右的视频时,可以正常播放。但是,如果我使用一个大约 137K 左右的文件,则该文件永远不会播放。它太大了吗?

当我使用 F12 查看网络事件时,我看到文件正试图以 text/html 格式下载。这是为什么?我还在 GET 函数上看到它正在中止。这是为什么?我增加了 executionTimeout 值,但无济于事。

enter image description here

来自 napuza 的信息很好,我能够获得正确的内容类型,似乎整个文件都已流式传输到浏览器,但它从未播放过。

enter image description here

最佳答案

指定内容类型:

ControllerContext.HttpContext.Response.ContentType = "video/x-ms-wmv";
ControllerContext.HttpContext.Response.BinaryWrite(bytesinfile);

关于c# - WMV 流媒体文件大小限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43589448/

相关文章:

c# - ASP.NET CORE 2.2 使用 dotConnect for MySQL 作为提供程序和 Entity Framework 扩展 : The Provider could not be resolved

c# - 类型 'System.Web.Mvc.MvcWebRazorHostFactory' 的表达式不能用于返回类型 'System.Web.WebPages.Razor.WebRazorHostFactory'

C# 客户端-服务器视频流

c++ - OpenCV VideoWriter 是否支持将帧写入 RTSP?

使用 RTMP 的 FFMPEG 流式传输

c# - 由于 XML 节点的顺序不正确,DataContract 反序列化失败

c# - 如何修改Expression<Func<???, bool>>的类型参数?

c# - 通过 UWP startupTask 扩展检测启动

c# - 使用 knockout 填充文本框 "data-bind=click"

c# - MVC4 可扩展插件架构