我试图通过ashx页面将flv文件加载到JWPlayer中。但我总是得到以下错误:JW Player无法显示通过文件处理程序(.ashx)提供的flv
Task Queue failed at step 5: Playlist could not be loaded: Playlist file did not contain a valid playlist
如果我直接在Firefox中加载ashx页面,视频将加载并自动播放。如果我改变flvplayer直接指向一个flv文件,它工作正常。所以我对这个问题有些困惑!我注意到的一件事是,直接通过浏览器播放时,ashx页面后面的代码运行两次,第二次没有会话变量可用,尽管Fiddler只能检测到浏览器的一个请求。当JWPlayer调用ashx页面时,代码只执行一次。
任何帮助,将不胜感激!
<%@ WebHandler Language="C#" Class="CourseVideoHandler" %>
using System;
using System.Web;
using System.Web.SessionState;
using System.IO;
public class CourseVideoHandler : IHttpHandler, IReadOnlySessionState
{
public void ProcessRequest(HttpContext context)
{
context.Response.ClearContent();
context.Response.ClearHeaders();
context.Response.ContentType = "video/x-flv";
FileStream fs = File.Open(HttpContext.Current.Server.MapPath("~/content/coursevideos/rowthe boat.flv"),
FileMode.Open);
byte[] b = new byte[fs.Length];
fs.Read(b, 0, (int) fs.Length);
fs.Close();
context.Response.OutputStream.Write(b, 0, b.Length);
}
public bool IsReusable {
get {
return false;
}
}
}
<!-- START OF THE PLAYER EMBEDDING TO COPY-PASTE -->
<div id="mediaplayer">JW Player goes here</div>
<script type="text/javascript" src="jwplayer.js"></script>
<script type="text/javascript">
jwplayer("mediaplayer").setup({
flashplayer: "player.swf",
file: "../../CourseVideoHandler.ashx?t=.flv",
image: "preview.jpg"
});
</script>
<!-- END OF THE PLAYER EMBEDDING -->