4

我需要在 ASP MVC 4 网站上使用 HTML5 视频标签(如果支持)或 JW Player 播放视频。现在我使用 WCF REST 方法通过以下方式访问视频文件:

    [OperationContract]
    [WebInvoke(ResponseFormat = WebMessageFormat.Json, Method = "GET")]
    public Stream Download(string id, bool isTemp)
    {
        //File.OpenRead(path) works inside FileBlo.Fownload 
        Stream download = FileInfoBlo.Download(id, isTemp);
        if (WebOperationContext.Current != null)
        {
            //Specifing any other mime type doesn't help
            WebOperationContext.Current.OutgoingResponse.ContentType = "video/*";
        }
        return download;
    }

所以文件的链接就像

http://localhost/app-api/Apiservice.svc/download?id=8&isTemp=false

问题是:
1. HTML5 播放 - 只有 Chrome 可以播放视频,但不能做任何其他事情 - 停止、再次播放、搜索等。其他浏览器根本不播放。仅使用指向文件的链接访问文件时,例如

“http://localhost/app/file.mp4”

它可以播放。


2. JW 播放器播放 - 发生错误 -

错误询问队列在第 5 步失败:无法加载播放列表:播放列表文件不包含有效的播放列表

访问带有链接的文件时(如上所示) - 它至少可以播放。

据我了解,这种“wcf 流”不适合视频播放。可能WCF在这里根本不是一个选择吗?因此,任何有关 IIS(7+ / Server 2008)的正确视频流的帮助和建议\示例都将受到极大的欢迎。

谢谢。

4

1 回答 1

0

您需要设置响应标头。具体来说:Content-Range X-Content-Duration Content-Length

于 2014-11-03T11:42:55.703 回答