使用MP4box.js和onSegment回调不称为no websocket

问题描述

所以我正在尝试使用MP4Box.js。在其自述文件页面上指出:它具有一个演示:“执行动态分段的播放器”。

但是根本不调用应该为MSE提供服务的onSegment回调:

const getVideo = async () => {
    const data = await fetch(url,{ headers: { range: 'bytes=0-567139' } });
    let buff = await data.arrayBuffer();
    console.log(buff)

mp4box = MP4Box.createFile();

mp4box.onError = function(e) {
  console.log("mp4box failed to parse data.");
};

mp4box.onMoovStart = function () {
  console.log("Starting to receive File Information");
};

mp4box.onReady = function(info) {
  console.log(info.mime);
  mp4box.onSegment = (id,user,buffer ) =>  {
  setBuffer(buffer)
 }

  mp4box.setSegmentOptions(info.tracks[0].id,null,{ nbSamples: 1000 });
  var initSegs = mp4box.initializeSegmentation();
  console.log(initSegs)
  mp4box.start();

};

var nextBufferStart = 0;
buff.fileStart = nextBufferStart;
nextBufferStart = mp4box.appendBuffer(buff);
mp4box.flush();

const mediaSource = new MediaSource();
const mimeCodec = 'video/mp4; codecs="avc1.640029,mp4a.40.2"';
video.src = URL.createObjectURL(mediaSource);


function sourceopen() {
    console.log('open')
    const source = mediaSource.addSourceBuffer(mimeCodec);
    const setBuffer = (buff) => {
        source.appendBuffer(buff)
    };
}
mediaSource.addEventListener('sourceopen',sourceopen,{ once: true });

    
}

现在将其放入HTML文件将在JavaScript控制台中显示以下结果:

Starting to receive File Information
video/mp4; codecs="avc1.4d4028"; profiles="isom,iso2,avc1,iso6,mp41"

但是此后没有任何反应。为什么在这里未调用onSegment?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...