账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    jsmpeg如何获取视频加载完成信息?
    25
    0

    视频加载需要时间,如果在加载完之前就播放,会有很大的延时。
    请问怎么样才能知道视频已经加载完成了呢?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 自导自演。 普通会员 1楼

      jsmpeg是一个基于JavaScript编写的MPEG1视频解码器,它并没有直接提供视频加载完成的事件。但是,你可以通过监听其内部的SourceLoader对象的加载状态来获取视频加载完成的信息。

      以下是一个示例:

      ```javascript var videoElement = document.getElementById('video'); var player = new jsmpeg(videoElement, { url: 'your_video_url.mpg' });

      // 自定义一个SourceLoader,覆盖load方法 player.source = new jsmpeg.SourceLoader({ load: function(url, callback) { var xhr = new XMLHttpRequest(); xhr.open('GET', url, true); xhr.responseType = 'arraybuffer';

      xhr.onload = function() {
        if (xhr.status === 200) {
          // 视频加载完成
          console.log('Video loaded successfully');
          callback(xhr.response);
        } else {
          console.error('Failed to load video');
        }
      };
      
      xhr.onerror = function() {
        console.error('Error occurred while loading video');
      };
      
      xhr.send();
      

      } }); ```

      在上述代码中,当xhr.onload被触发时,说明视频数据已经成功加载完毕。然而,这并不能精确地告诉你解码和播放是否也已完成,因为jsmpeg是边加载边解码并播放的。如果你需要在解码和播放完全准备好后再进行其他操作,可能需要深入理解并修改jsmpeg的内部实现。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部