Javascript MSE Safari 11唐';t在中止SourceBuffer后将段追加到SourceBuffer

Javascript 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

我正在使用媒体源扩展API开发视频播放器。 为了实现Seek功能,我执行以下操作:

首先使用SourceBuffer的abort()方法中止当前段并重置段解析器。 然后获取currentTime的新段,然后下载新段并附加到SourceBuffer

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;
  };