langhuihui / jessibuca

Jessibuca是一款开源的纯H5直播流播放器
https://jessibuca.com
GNU General Public License v3.0
2.14k stars 401 forks source link

最新的版本 decoder.js 有问题,在手机端无法播放视频。 RuntimeError: Aborted(CompileError: WebAssembly.instantiate(): Compiling function #230 failed: invalid simd opcode @+133060) #196

Closed 1095788063 closed 2 years ago

1095788063 commented 2 years ago

image

RuntimeError: Aborted(CompileError: WebAssembly.instantiate(): Compiling function #230 failed: invalid simd opcode @+133060)

bosscheng commented 2 years ago

@1095788063 用 2022-5-27 v3.0.31 这个版本试下。目前只有chrome和firefix支持这个特性。

1095788063 commented 2 years ago

我试了 Jessibuca_v3.1.0 版本是可以的,并且尝试用 v3.1.2 的 jessibuca.js 和 v3.1.0 decoder.js 搭配在一起是正常的 。

bosscheng commented 2 years ago

@1095788063 可以试下最新版本了,问题修复了。

1095788063 commented 2 years ago

@bosscheng 还是不行 image

1095788063 commented 2 years ago

v3.1.0 decoder.js 版本是正常的

bosscheng commented 2 years ago

你试下官网是否可行了。

1095788063 commented 2 years ago

image 官网的是不是出错了,我的都不能播放了 @bosscheng

1095788063 commented 2 years ago

image 打开就直接报错了,用微信公众号开发工具测试。

bosscheng commented 2 years ago

好的,我看下

bosscheng commented 2 years ago

@1095788063 问题修复了

image
1095788063 commented 2 years ago

可以正常的运行,点赞。 @bosscheng 提几个小优化的f地方。每次发布版本我自己都要改一下。 image image image image image //视频信息,多次返回,也没有关系的了,主要是每次第二次换新的播放地址,不会返回了。 if(EVENTS.videoInfo!=null){ this.player.emit(EVENTS.videoInfo, this.videoInfo); }

        //有时候这里会报错,最好加个判断避免报错
        if(this.sourceBuffer.appendBuffer!=null){
            this.sourceBuffer.appendBuffer(buffer);
        }

  set recording(value) {
      if (value) {
          if (this.playing) {
              //加个判断避免报错
              if(this.recorder!=null&&this.recorder.startRecord!=null){
                  this.recorder.startRecord();
              }
          }
      } else {
          //加个判断避免报错
          if(this.recorder!=null&&this.recorder.stopRecordAndSave!=null) {
              this.recorder.stopRecordAndSave();
          }
      }
  }

          //加个判断避免报错
          if(this.video!=null&&this.video.clearView!=null){
              this.video.clearView();
          }

      //加个判断避免报错
      if(this.player==null){
          return false;
      }
      if(this.player.playing==null){
          return false;
      }
bosscheng commented 2 years ago

@1095788063 ok 谢谢。