Ich habe versucht, Media Source Extension (MSE) API zu verwenden, um Live-Streaming über Websocket zu spielen. Alles funktioniert gut, außer dass der Browser für ungefähr einen Tag abgestürzt ist. Ich fand auch, dass die Erinnerung immer größer wird. Unten ist mein Ausschnitt. Ich nehme an, dass ich zu viele Daten angehängt habe, so dass der Speicher immer erhöht wird, was zu abnormalem Verhalten für Chrome führt. Ist es möglich, den MSE/Videopuffer über die MSE API freizugeben, um Speicherlecks zu vermeiden?Media Source Extension-Video abgestürzt (Speicherleck)
OS: Windows 7 SP1 64-Bit-Windows- 10 64-Bit-
var buffer_size = 5*1024*1024;
var buffer_index = 0;
var video = null;
var frag_mp4_buffer = new Uint8Array(buffer_size);
websocket.onmessage = function(evt){
var buffer = new Uint8Array(evt.data);
if(buffer.length !=0){
if((buffer_index + buffer.length) <= buffer_size){
frag_mp4_buffer.set(buffer, buffer_index);
buffer_index = buffer_index + buffer.length;
if(sourceBuffer.updating == false){
var appended = frag_mp4_buffer.slice(0,buffer_index);
sourceBuffer.appendBuffer(appended);
frag_mp4_buffer.fill(0);
buffer_index = 0;
}
}
}
};