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

时间:2018-08-15 15:39:38

标签: javascript media-source

我想使用Java媒体源同时播放音频和视频。 我可以同时玩,但不能同时玩。

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

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

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

1 个答案:

答案 0 :(得分:0)

如果您需要同时播放视频和声音,则需要创建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不会播放视频,因为它同时获取了两个数据。例如,如果您缓冲了视频中的前5s和音频中的3s,播放器将停在3s

只要保持缓冲区公平即可;)