видимые видео должны играть только как Facebook на сайте - PullRequest
0 голосов
/ 05 декабря 2018

Я нашел код JavaScript в сети для воспроизведения видео, когда видно, что другие видео должны приостанавливаться, но этот код, когда я перехожу на страницу, все видео, это пауза, но я завожу прокрутку, на которой воспроизводятся все видео, я отправлю этокод вниз, и я получаю видео из базы данных и через цикл пока я получаю все видео.Любой, кто поможет мне решить эту проблему и скажет мне лучшее решение для этого.

<script>
    var videos = document.getElementsByClassName('embed-responsive-item');

            function checkScroll() {

                for(var i = 0; i < videos.length; i++) {

                    var video = videos[i];
                    //alert(video);
                    var x = video.offsetLeft, y = video.offsetTop, w = video.offsetWidth, h = video.offsetHeight, r = x + w, //right
                        b = y + h, //bottom
                        visibleX, visibleY, visible;

                    visibleX = Math.max(0, Math.min(w, window.pageXOffset + window.innerWidth - x, r - window.pageXOffset));
                    visibleY = Math.max(0, Math.min(h, window.pageYOffset + window.innerHeight - y, b - window.pageYOffset));

                    visible = visibleX * visibleY / (w * h);
                    fraction = 1;
                    //alert(visible);

                    if (visible > fraction) {
                        //alert(visible);
                        video.pause();
                    } else {
                        video.play();
                    }

                }

            }

            window.addEventListener('scroll', checkScroll, false);
            window.addEventListener('resize', checkScroll, false);
</script>

<?php
while($getSharePer01=mysqli_fetch_assoc($getPostStatus01)){
 extract($getSharePer01);
?>

<video id="sampleMovie" class="embed-responsive-item" height="500" preload controls>
<source src="<?php echo $u_pvid; ?>" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"'/>
<object type="application/x-shockwave-flash" data="http://releases.flowplayer.org/swf/flowplayer-3.2.1.swf" width="640" height="360">
<param name="movie" value="http://releases.flowplayer.org/swf/flowplayer-3.2.1.swf" />
<param name="allowFullScreen" value="true" />
<param name="wmode" value="transparent" />
<param name="flashvars" value='config={"clip":{"url":"HTML5Sample_flv.flv","autoPlay":false,"autoBuffering":true}}' />
</object>
</video>

<?php
}
?>

1 Ответ

0 голосов
/ 05 декабря 2018

Это решение для этого вопроса

<script>
         $(document).ready(function() {
             // Get media - with autoplay disabled (audio or video)
             var media = $('video').not("[autoplay='autoplay']");
             var tolerancePixel = 20;

             function checkMedia(){
                 // Get current browser top and bottom
                 var scrollTop = $(window).scrollTop() + tolerancePixel;
                 var scrollBottom = $(window).scrollTop() + $(window).height() - tolerancePixel;

                 media.each(function(index, el) {
                     var yTopMedia = $(this).offset().top;
                     var yBottomMedia = $(this).height() + yTopMedia;

                     if(scrollTop < yBottomMedia && scrollBottom > yTopMedia){ //view explaination in `In brief` section above
                         $(this).get(0).play();
                     } else {
                         $(this).get(0).pause();
                     }
                 });

                 //}
             }
             $(document).on('scroll', checkMedia);
         });
        </script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...