【问题标题】:Videogular 2 seekTime function wont work with HLS streamVideogular 2 seekTime 功能不适用于 HLS 流
【发布时间】:2018-09-11 13:01:36
【问题描述】:

我有一个要使用 Videogular 2 流式传输的 .m3u8 文件,我希望视频的开始时间为几秒钟,当我使用 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);

    }

  }

【问题讨论】:

    标签: angular videogular


    【解决方案1】:

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

    很遗憾,此时 VgHLS 并未导出 - videogular2/streaming 模块仅导出 VgStreamingModule(将其与导出 VgAPI 的 videogular2/core 模块进行比较)。这意味着我们无法轻松访问它。

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

    希望将来 VgHLS 将作为 Videogular 库的一部分公开,但现在我建议 creating an issue in the git repository 或者如果您找到解决方案,可能会创建您自己的拉取请求。

    Source: comment by the creator of Videogular (April 19th 2018)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-27
      • 1970-01-01
      • 1970-01-01
      • 2014-10-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多