Я разрабатываю 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