小编Nag*_*eth的帖子

无法通过Media Source API附加细分,获取"InvalidStateError:尝试使用不可用或不再可用的对象

我使用以下示例程序追加媒体文件,但得到"Uncaught InvalidStateError:尝试使用一个不可用或不再可用的对象"错误,它在第一个瞬间命中"mediaSource.sourceBuffers [0] .appendBuffer(mediaSegment);".我使用的是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);
to
mediaSource.sourceBuffers [0] .appendBuffer(mediaSegment);

和

sourceBuffer.append(ini​​tSegment);
to
sourceBuffer.appendBuffer(initSegment);

因为append方法在我的环境中不起作用.

我在window.setTimeout()事件中使用sourceopen而不是webkitsourceopen.

mediaSource.addEventListener('sourceopen',onSourceOpen.bind(this,video));

javascript html5-video media-source

4
推荐指数
2
解决办法
4708
查看次数

标签 统计

html5-video ×1

javascript ×1

media-source ×1