CodeAE 发表于 2024-10-13 15:27:44

Discuz教程-帖子里有多个MP4媒体,默认只播放一个

在Discuz中当我们把媒体自动播放设置打开时,如果帖子中有多个视频会同时间播放,非常影响体验,所以我们有必要修改一下,让其只播放第一个。
循环给所有video添加监听事件当前的video开始播时调用pauseAll将当前播放的video的索引传值过去
接收调用传来的索引循环所有video索引与传来的索引不相同的 暂停 重载

方法如下:(选择其中一种就可以了)
1、将以下代码放在页头文件header.htm或页尾文件footer.htm的</hend>或</body>前面就可以了。
2、或者直接在后台>>全局>>SEO设置>>其他>>其他头部信息框内
<script>
window.onload=function(){
    var videos = document.getElementsByTagName('video');//获取所有video
    //循环给所有video添加监听事件 当前的video开始播时调用pauseAll 将当前播放的video的索引传值过去
    for (var i = videos.length - 1; i >= 0; i--) {
      (function(n){
            videos.addEventListener('play',function(){
                pauseAll(n);
            })
      })(i)
    }
    //接收调用传来的索引 循环所有video 索引与传来的索引不相同的 暂停 重载
    function pauseAll(index){
      for (var j = videos.length - 1; j >= 0; j--) {
            if (j!=index){
                videos.pause();
                videos.load();
            }
      }
    };

}
</script>https://www.dismall.com/thread-20225-1-1.html

页: [1]
查看完整版本: Discuz教程-帖子里有多个MP4媒体,默认只播放一个