我试图按角度播放视频,但出于某种原因,它没有加载,我添加了下面的代码
<div>
<video controls #videoElement ></video>
</div>Ts文件
mimeCodec = 'video/mp4; codecs="avc1.42E01E, mp4a.40.2"';// i have make sure the file is mp4 type only
ngAfterViewInit() {
if (
"MediaSource" in window &&
MediaSource.isTypeSupported(this.mimeCodec)
) {
const mediaSource = new MediaSource();
(this.video.nativeElement as HTMLVideoElement).src = URL.createObjectURL(
mediaSource
);
mediaSource.addEventListener("sourceopen", () =>
this.sourceOpen(mediaSource)
);
} else {
console.error("Unsupported MIME type or codec: ", this.mimeCodec);
}
}
sourceOpen(mediaSource) {
const sourceBuffer = mediaSource.addSourceBuffer(this.mimeCodec);
return this.http
.get(this.assetURL, { responseType: "blob" })
.subscribe((blob) => {
sourceBuffer.addEventListener("updateend", () => {
mediaSource.endOfStream();
this.video.nativeElement.play();
});
blob.arrayBuffer().then((x) => sourceBuffer.appendBuffer(x));
});
}服务器端-Asp.net核心
[HttpGet("ActivityVideo/{id:int}")]
[AllowAnonymous]
public IActionResult GetVideo(int id)
{
try
{
var video = _videoService.GetVideo(id);
return PhysicalFile(video.Path, "application/octet-stream", enableRangeProcessing: true);
}
catch (Exception ex)
{
}
return null;
}

调试时,调用正在访问服务器。从邮递员那里也得到了同样的回应。在邮递员中,我可以将响应保存为mp4,然后播放视频。所以我觉得我的角度代码有问题。谁能建议这个问题,或者如果你有任何其他方式来播放视频,这也会很好吗?
备注:我使用Jwt进行身份验证,所以我不能仅仅为了测试而将URL放在src中,我允许视频匿名,谢谢。
发布于 2021-04-22 15:04:40
使用
<div>
<video loop />
</div>而不是
<div>
<video> </video>
</div>我认为它解决了你的问题。
https://stackoverflow.com/questions/67213876
复制相似问题