我正在尝试使用嵌入式VLC控件编写视频流媒体网站来播放视频,并尝试使用asp.net处理程序来获取视频流。我按如下方式嵌入控件:
<embed type="application/x-vlc-plugin" pluginspage="http://www.videolan.org" width="640" height="480" target="http://MyWebsite/MyHandler.ashx"/>
<object classid="clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921" codebase="http://download.videolan.org/pub/videolan/vlc/last/win32/axvlc.cab"></object>
我在处理程序中用于流式传输视频的代码是:
public void ProcessRequest(HttpContext context)
{
context.Response.Buffer = false;
context.Response.ContentType = "text/plain";
var path = @"c:/file.avi";
var file = new FileInfo(path);
var len = (int)file.Length;
context.Response.AppendHeader("content-length", len.ToString());
var buffer = new byte[1024];
var outStream = context.Response.OutputStream;
using (Stream stream = File.OpenRead(path))
{
int bytes;
while (len > 0 && (bytes = stream.Read(buffer, 0, buffer.Length)) > 0)
{
outStream.Write(buffer, 0, bytes);
len -= bytes;
}
}
}
虽然这可以播放并播放视频,但我无法向后或向前搜索,搜索栏根本不会移动。我想,因为我发送了文件大小,它可以计算位置,但我猜不是。是否有可能在视频中进行搜索,或者它是不可能的,因为它是一个流(即使它不是'真'流,因为它来自具有定义大小的文件等)