我正在使用 PushStreamContent 以异步方式流式传输作为 BLOB 托管的视频。这是我到目前为止所做的
public HttpResponseMessage Get(string filename, string extension)
{
var video = new VideoStream(filename, extension);
var response = Request.CreateResponse();
response.Content =
new PushStreamContent(
(Action<Stream, HttpContent, TransportContext>) video.WriteToStream,
new MediaTypeHeaderValue("video/" + extension));
return response;
}
video.WriteToStream 只是读取文件并写入输出流。当我在这里关注这篇文章时,一切都很好。
这就是我使用 video.js 流式传输视频的方式
<video id="really-cool-video" class="video-js vjs-default-skin" controls poster="@Model.MediaThumbnailUrl"
preload="auto" style="width: 100%; min-height: 380px; height: 100%;" autoplay
data-setup='{}'>
<source src="/api/Stream/myfilenamehere/mp4" type="video/mp4">
<p class="vjs-no-js">
To view this video please enable JavaScript, and consider upgrading to a web browser
that supports HTML5 video.
</p>
</video>
当我尝试向前拖动视频时遇到问题,它会重新启动视频。早些时候我有一个类似的问题,这是由于我在上传时错过了为块 blob 设置内容类型。我在这里又错过了什么吗?