代码之家  ›  专栏  ›  技术社区  ›  fightstarr20

重新加载页面时JavaScript忽略警报

  •  0
  • fightstarr20  · 技术社区  · 6 年前

    我正在检测JavaScript中webrtc流的结尾,如下所示。。。

    stream.getVideoTracks()[0].onended = () => {
        alert('Feed Has Ended');
    };
    

    这可以正常工作,但是如果用户刷新或重新加载页面,则也会显示警报。

    我知道这在技术上是正确的,但如何使其在这些条件下不显示警报?

    0 回复  |  直到 6 年前
        1
  •  1
  •   Akshit    6 年前

    为什么不使用全局布尔值来检查视频是否正在播放?重新加载或刷新页面时,isVideoRunning将变为false,并且不会显示警报。

    就像

    this.isVideoRunning = false;
    

    在addtrack上,

    this.rtcPeerCon_.ontrack = function (event) {
        if (!this.rtcPeerCon_) {
            return;
        }
        if( !this.remoteVideo_ ) {
            return;
        }
        this.remoteVideo_.srcObject = event.streams[0];
        this.isVideoRunning = true;
    }
    

    然后在您的onStream-end回调中,您可以检查

    if (this.isVideoRunning) {
        alert('whatever');
        this.isVideoRunning = false;
    }