JavaScript多个音频audio标签或者多个视频video,点击其中一个播放时,其他的停止播放

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>一个页面中有多个音频audio标签,怎样在点击其中一个播放时,其他的停止播放</title>
</head>

<body>
    <audio src="http://www.ytmp3.cn/down/49366.mp3" controls></audio>
    <audio src="http://www.ytmp3.cn/down/49382.mp3" controls></audio>
    <audio src="http://www.ytmp3.cn/down/49369.mp3" controls></audio>
    <script type="text/javascript">
    // 获取所有audios
    var audios = document.getElementsByTagName("audio");
    // 暂停函数
    function pauseAll() {
        var self = this;
        [].forEach.call(audios, function(i) {
            // 将audios中其他的audio全部暂停
            i !== self && i.pause();
        })
    }
    // 给play事件绑定暂停函数
    [].forEach.call(audios, function(i) {
        i.addEventListener("play", pauseAll.bind(i));
    })
    </script>
</body>

</html>

 多个视频:

// 视频点击播放/暂停
                var videoAll = $(".J_catVideo");
                videoAll.on("click",function(){
                    var cindex = videoAll.index(this);
                    videoAll.each(function (i) {
                        var video = $(this).find('video')[0];
                        if (i == cindex) {
                            if (video.paused) {
                                $(this).find(".J_videoPic").hide();
                                video.play();
                            } else {
                                $(this).find(".J_videoPic").show();
                                video.pause();
                            }
                        }else{
                            if (!video.paused) {
                                $(this).find(".J_videoPic").show();
                                video.pause();
                            }
                        }
                    })
                })

 

posted @ 2018-07-19 14:18  前端HL  阅读(2133)  评论(0编辑  收藏  举报