次のサンプル プログラムを使用してメディア ファイルを追加しましたが、コード「mediaSource.sourceBuffers[0]」にヒットした最初の瞬間に「Uncaught InvalidStateError : 使用できないオブジェクト、または使用できなくなったオブジェクトを使用しようとしました」というエラーが表示されます。 .appendBuffer(メディアセグメント);". Chrome 31.0.1650.57 を使用しています。誰でもこれを解決するようにアドバイスできますか?
https://github.com/jbochi/media-source-playground/blob/master/test.html
ファイルを追加するために次の変更を行いました。
var buffer_len = 0;
function HaveMoreMediaSegments(){
//return false; //return buffers.length > 0;
return buffers.length > buffer_len;
}
// var GetNextMediaSegment = GetInitializationSegment;
function GetNextMediaSegment(){
var buffer = buffers[buffer_len];
buffers = buffers.slice(1);
buffer_len = buffer_len + 1;
return buffer;
}
そして変わった
mediaSource.sourceBuffers[0].append(mediaSegment);
に
mediaSource.sourceBuffers[0].appendBuffer(mediaSegment);
と
sourceBuffer.append(initSegment);
に
sourceBuffer.appendBuffer(initSegment);
私の環境ではappendメソッドが機能しないためです。
そして、window.setTimeout() イベント内で webkitsourceopen の代わりに sourceopen を使用します。
mediaSource.addEventListener('sourceopen', onSourceOpen.bind(this, video));