为什么我的jQuery代码不更新视频元素中加载的实时图像?

Why doesn’t my jQuery code update live image loaded in a video element?

本文关键字:加载 实时 图像 元素 视频 jQuery 我的 代码 更新 为什么      更新时间:2023-09-26

我有一个实时图像的URL,我想把它显示为视频,但只有第一帧显示而不是动画。我用的Google Chrome版本是36.0.1985.125.

我错过了什么?

<video id="one_frame_per_second"
       autoplay=autoplay 
       poster="http://ip.address/screensaver/now.jpeg"></video>
<script>
    $(document).ready(function() {
        $('#one_frame_per_second').show();
        mtimer = setInterval(function() {
            $('#one_frame_per_second').attr(
                'poster',
                'http://ip.address/screensaver/now.jpeg'
            );
        }, 15);
    });
</script>

请报告谷歌Chrome,金丝雀,Opera, Firefox解决这个功能,这是在过去工作。

临时解决方案为:

<video id="one_frame_per_second"
       autoplay=autoplay 
       poster="http://82.143.92.19/video/now.jpeg" ></video>

<script>
  $(document).ready(function(){
      $( "#one_frame_per_second" ).show();              
      var mtimer=setInterval(function(){  
         $("#one_frame_per_second").attr('poster', 'http://82.143.92.19/video/now.jpeg?r'+Date.now());
       },150);      
  });
</script> 

注意:?r= Date.Now(),缓存问题+最小间隔时间

您能提供这个实时图像以便我们进行测试吗?

在没有进一步了解的情况下,我猜这是因为你设置了相同的源。

你可以试试这个吗:

   mtimer=setInterval(function(){  
    var video = $("#one_frame_per_second");      
    video.attr('poster', '');
    video.attr('poster', 'http://ip.address/screensaver/now.jpeg');
  },15);

尝试先构造函数然后调用它

$(document).ready(function(){
  $( "#one_frame_per_second" ).show();              
  var mtimer = function() {setInterval(function(){        
    $("#one_frame_per_second").attr('poster', 'http://ip.address/screensaver/now.jpeg');  
  },15); }
  mtimer
});

同样,如果你仍然得到错误,试着增加定时器到10000,并在定时器内做一个console.log($("#one_frame_per_second").attr('poster', 'http://ip.address/screensaver/now.jpeg'); ),看看你是否得到任何奇怪的错误

好吧,我想我得到它的工作:http://jsfiddle.net/ajn5ntcj/3/

  $(document).ready(function(){
      $( "#one_frame_per_second" ).show();              
      var mtimer= function(){
        var video_t = $("#one_frame_per_second");      
        //video_t.attr('poster', '')
        video_t.attr('poster', 'http://82.143.92.19/video/now.jpeg')
        //console.log('here im again2')
      }
      setInterval(mtimer,1000)
      //console.log('here im again')
  });

我认为它有帮助:

 <video id="one_frame_per_second"
       autoplay=autoplay 
       poster="http://82.143.92.19/video/now.jpeg" ></video>

     $(document).ready(function(){
  $( "#one_frame_per_second" ).show();              
  var mtimer= function(){
    var video_t = $("#one_frame_per_second");      
    video_t.attr('poster', 'http://82.143.92.19/video/now.jpeg')
    //console.log('here im again2')
  }
  setInterval(mtimer,1000)

});