Я пытаюсь загрузить FLV-файл в JWPlayer через страницу ashx. Однако я всегда получаю следующую ошибку:
Ошибка очереди задач на шаге 5: не удалось загрузить список воспроизведения: файл списка воспроизведения не содержит допустимого списка воспроизведения
Если я загружу страницу ashx непосредственно в Firefox, видео загрузится и будет воспроизводиться автоматически. Если я изменю flvplayer, чтобы он указывал непосредственно на flvfile, он работает нормально. Так что я немного сбит с толку, в чем проблема! Одна вещь, которую я заметил, заключается в том, что при воспроизведении непосредственно через браузер код страницы 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 -->