SourceBuffer в MediaSource не работает в Angular - PullRequest
0 голосов
/ 14 июня 2019

Я разрабатываю LiveStream в своем угловом приложении.Back-end может предоставить мне mp4 файлы видео.Я пытаюсь разработать свой собственный плеер для запроса новых частей видео, и для этого я хочу использовать MediaSource с SourceBuffer.Я использую этот урок https://medium.com/canal-tech/how-video-streaming-works-on-the-web-an-introduction-7919739f7e1 Однако после того, как я создал MediaSource и SourceBuffer, я не могу вызвать метод SourceBuffer.appendBuffer.

Это ошибка, которую я получаю:

Uncaught TypeError: Failed to execute 'appendBuffer' on 'SourceBuffer': No function was found that matched the signature provided.
const videoTag = document.getElementById("video");
const mediaSource = new MediaSource();
const url = URL.createObjectURL(mediaSource);
(<HTMLVideoElement>videoTag).src = url;
mediaSource.onsourceopen = () => {
    let videoSourceBuffer: SourceBuffer = mediaSource.addSourceBuffer('video/mp4; codecs="avc1.64001e"');
        this.http.get('/videoStreaming/res6547', parameters).subscribe((data) => {
          console.log(videoSourceBuffer);
          videoSourceBuffer.appendBuffer(data.payload); //<== here stuff breaks
        })
      }

Для меня это выглядит так, как будто MediaSource.addSourceBuffer не создает соответствующий объект SourceBuffer.

SourceBuffer {mode: "segments", updating: false, buffered: TimeRanges, timestampOffset: 0, appendWindowStart: 0, …}
appendWindowEnd: Infinity
appendWindowStart: 0
buffered: TimeRanges {length: 0}
mode: "segments"
onabort: null
onerror: null
onupdate: null
onupdateend: null
onupdatestart: null
timestampOffset: 0
updating: false
__proto__: SourceBuffer
...