Videogular 2 seekTime 函数不适用于 HLS 流



我有一个 .m3u8 文件可以使用 Videogular 2 进行流式传输,我希望有一个进入视频几秒钟的开始时间,当我使用 vgAPI seekTime(( 函数时,它适用于 mp4 但不适用于 hls

视图

<vg-player *ngIf="videoreveal && gameOpen != 'open'" (onPlayerReady)="onPlayerReady($event)">
<video #myMedia
[vgHls]="videoreveal"
id="singleVideo"
type="video/mp4"
crossorigin
poster="assets/imgs/bg_live.png" 
playsinline 
webkit-playsinline="webkit-playsinline" 
autoplay>
</video>
</vg-player>

控制器

onPlayerReady(api: VgAPI) {
let d = new Date();
let mins = d.getMinutes();
let secs = d.getSeconds();
let startSecs = parseInt(this.startMin) * 60;
let currentSeconds = secs + (mins * 60);
let timeDiff = currentSeconds - startSecs; 
//console.log('time start seconds ' + startSecs);
//console.log('time seconds ' + currentSeconds);
//console.log('time delay ' + timeDiff);
if( mins < this.endMins) 
{
api.seekTime(timeDiff);
}
}

Videogular 2 中的 HLS 流不会向常规 VgAPI api 对象触发事件。相反,它们被触发到 VgHLS 对象(因为 hls 是 Videogular 的一个单独的库(。

不幸的是,VgHLS 目前尚未导出 - videogular2/streaming 模块仅导出 VgStreamingModule(将其与导出 VgAPI 的 videogular2/core 模块进行比较(。这意味着我们无法轻松访问它。

目前唯一的解决方案是访问 hls.js 对象并在触发事件时侦听事件。

希望将来 VgHLS 将作为 Videogular 库的一部分公开,但现在我建议在 git 存储库中创建一个问题,或者如果您找到解决方案,可能会创建您自己的拉取请求。

来源:Videogular创建者的评论(2018年4月19日(

最新更新