我在项目中使用的是角度6。使用视频播放的通用视频标签。我的视频文件首先以.mp4格式保存在服务器上。播放文件流时,将从Web API返回。我的源代码如下。
我正在尝试在加载后播放视频。搜索后,将当前时间设置为搜索时间。但总是与我开始寻找位置或视频开始时间相同的播放位置。
--- HTML
<div class="container-fluid">
<div class="row">
<div id="video-container" style="width: 1515px; background-color: rgb(44, 44, 44); ">
<video id="mp-video-player" layout="column" layout-align="center end" controls>
<source [src]="mpSRC" type="video/mp4">
</video>
</div>
</div>
</div>
---- Typescrypt
this.mpVideoPlayer = document.getElementById('mp-video-player');
if(this.mpVideoPlayer !== undefined && this.mpVideoPlayer != null) {
(<HTMLObjectElement>this.mpVideoPlayer).data = '';
}
this.mpVideoPlayer.style.display = "block";
this.mpSRC = API.BASE_URL + API.Files.Stream + videoLoader.FileID;
this.mpVideoPlayer.load();
this.mpVideoPlayer.onloadeddata = (event) => {
this.mpVideoPlayer.play();
};
});
---- Web API源代码
[HttpGet("Stream/{fileId}")]
public IActionResult StreamFile(int fileId)
{
try
{
var file = _fileService.Get(fileId, "Ext").Result;
var filePath = GetFilePath(fileId);
var stream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read);
return new FileStreamResult(stream, file.Ext.StreamType);
}
catch (Exception ex)
{
_logger.Log(LogLevel.Trace, ex.Message);
return NoContent();
}
}