.pause() 在 Chrome 和 Firefox 中不工作,但在 Safari 中工作正常

.pause() isn't working in Chrome & Firefox, but works fine in Safari

我认为我对此不会有问题,因为 Safari 运行良好,但切换 videoElement.pause() 似乎没有在 Chrome/Firefox 中触发。关于如何使其跨浏览器友好的任何想法?

 $('a.playBtn.KBAC .pause').on('click', function(e) {
      e.preventDefault();
      var videoElement = document.getElementById('radioPlayerKbac');
      videoElement.pause();

 });

我正在使用viblast player。感谢您的帮助。

更新:适用于 Jquery 3.3.1。我们的 bootstrap 框架使用的是 3.4.1。这可能是个问题,还是我们的 jquery 正在排队(页脚或页眉)?

$('a.playBtn.KBAC').on('click', function(e) {
      e.preventDefault();
      var videoElement = document.getElementById('KBAC');
      videoElement.pause();
 });
video {
  height: 280px;
  width: auto;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<!-- ideally this should be in <head> -->  
<script src="//cdn.viblast.com/vb/stable/viblast.js"></script>
<a href="#"class="playBtn KBAC">PAUSE</a>
<!-- body -->
<video id="KBAC" autoplay src="https://58f14b372a413.streamlock.net:444/kbac/kbac.stream_aac/playlist.m3u8?id=1355" data-viblast-key="N8FjNTQ3NDdhZqZhNGI5NWU5ZTI=" controls width="640"></video>

在调试和尝试不同的东西之后,我找到了这个解决方案:

$( "a.playBtn.KBAC .pause" ).click(function(e) {
      var videoElement = document.getElementById('radioPlayerKbac');
          if (!videoElement.paused) {               // Check that video is playing when clicked
              setTimeout(() => {           // V. brief timer to allow default action to occur
                  if (!videoElement.paused) {       // Is it still playing?
                      videoElement.pause();         // Pause it
                  }
              }, 0);
          }
      });

这适用于 Safari、Chrome 和 Firefox。