4

私はライブストリーミングビデオがたくさんあるウェブサイトに取り組んでいます。ブラウザで一定時間 (分) 操作がないと、 いくつかのライブ ストリーミング ビデオが真っ暗になり、動作させるためにページを更新するか上下にスクロールする必要があります

フロントエンドでライブ ストリーミング ビデオを生成するために使用されている HTML コードは次のとおりです。

<div class="h264-live-view embed-responsive embed-responsive-16by9" data-media-type="video" data-media-playback="play">
   <video poster="./images/000000-0.png" 
    src="./geb5ac04-8f4e-462a-5fef-abc"></video> // placed a break-point here
</div>

上記のビデオ タグにブレークポイントを配置すると、 hls.jsの以下のコードから line#A が呼び出されます

 if (this.media) {
    URL.revokeObjectURL(this._objectUrl);

    // clean up video tag src only if it's our own url. some external libraries might
    // hijack the video tag and change its 'src' without destroying the Hls instance first
    if (this.media.src === this._objectUrl) {
      this.media.removeAttribute('src');   // line#A
      this.media.load();
    } else {
      logger["b" /* logger */].warn('media.src was changed by a third party - skip cleanup');
    }
  }


私が hls.js で使用しているコードはここにあります https://video-dev.github.io/hls.js/stable/api-docs/file/src/controller/buffer-controller.js.html

問題文:

Web ページで数分間アクティビティがない場合に、ライブ ストリーミング ビデオの黒い画面の背後にある理由と、それを修正する方法を考えています。

そのバグを修正する方法はありますか? このバグを修正するためにオーバーライドできるコードはありますか? また、問題はなぜonMediaDetaching ()関数が呼び出されるのですか? 上記のように video タグにブレークポイントを配置すると、line#A(this.media.removeAttribute('src');)が呼び出されます。

4

0 に答える 0