Javascript Mediasource 同时播放视频和音频?

Javascript Mediasource play video and audio simultaneously?

我想使用 Javascript 中的媒体源同时播放音频和视频。 我可以玩其中一个,但不能同时玩。

到目前为止,这是我的代码:

 let mse = function() {
    if ('MediaSource' in window && MediaSource.isTypeSupported(codecs)) {
        a = new MediaSource();
        a.addEventListener('sourceopen', ma);
        return a;
    } else {
        return false;
    }
}();

如果需要的话,我还有另外 600 行代码。

如果您需要同时播放视频和声音,您需要创建 2 个源缓冲区。正如你所说。你可以只玩其中一个。所以我猜你的代码没问题。所以你需要创建 2 个缓冲区。像这样

 my_media_source.addEventListener("sourceopen",function (){
    var video_source_buffer = my_media_source.addSourceBuffer(video_mimeCodec);
    var audio_source_buffer = my_media_source.addSourceBuffer(audio_mimeCodec);

     //.......

     video_source_buffer.appendBuffer(...);
     audio_source_buffer.appendBuffer(...);
 }

现在您可以同时缓冲视频和音频,请注意 MediaSource 在获得这两个数据之前不会播放您的视频。例如,如果您缓冲了视频的前 5 秒和音频的前 3 秒,播放器将停在 3 秒

保持你的缓冲区公平 ;)