Javascript MSE Safari 11唐';t在中止SourceBuffer后将段追加到SourceBuffer
我正在使用媒体源扩展API开发视频播放器。 为了实现Seek功能,我执行以下操作: 首先使用SourceBuffer的abort()方法中止当前段并重置段解析器。 然后获取currentTime的新段,然后下载新段并附加到SourceBufferJavascript MSE Safari 11唐';t在中止SourceBuffer后将段追加到SourceBuffer,javascript,safari,media-source,Javascript,Safari,Media Source,我正在使用媒体源扩展API开发视频播放器。 为了实现Seek功能,我执行以下操作: 首先使用SourceBuffer的abort()方法中止当前段并重置段解析器。 然后获取currentTime的新段,然后下载新段并附加到SourceBuffer if (mediaSource.readyState == "open") { mediaSource.sourceBuffers[0].abort(); } var nextSegment = getCurrentSegment(vide.cur
if (mediaSource.readyState == "open") {
mediaSource.sourceBuffers[0].abort();
}
var nextSegment = getCurrentSegment(vide.currentTime)
appendToBuffer(nextSegment)
在chrome和firefox中一切正常,但在safari中,当搜索视频时,它停止工作并卡住(因为没有将新片段添加到SourceBuffer)
经过一些研究,我发现这是一个自版本9
我想知道这个问题有解决办法吗 看来唯一的解决办法是删除一个空的abort()函数,这与google shaka player使用的方法相同
var addSourceBuffer = MediaSource.prototype.addSourceBuffer;
MediaSource.prototype.addSourceBuffer = function() {
var sourceBuffer = addSourceBuffer.apply(this, arguments);
sourceBuffer.abort = function() {}; // Stub out for buggy implementations.
return sourceBuffer;
};