首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MediaElement.buffered IndexSizeError

MediaElement.buffered IndexSizeError
EN

Stack Overflow用户
提问于 2018-05-31 07:21:38
回答 1查看 53关注 0票数 0

我尝试获取媒体元素的缓冲部分(具体来说,我试图从video元素获取它,但我希望它也能够使用audio ),但是当我使用带有某种偏移量的start()end()函数(例如0)时,日志返回以下错误:

IndexSizeError:索引或大小为负值或大于允许的数量

我的密码怎么了?

代码语言:javascript
复制
var mediaelement = function(e) {
    return e.buffered.start(0);
}

console.log(mediaelement(document.querySelector('video')));
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-31 08:58:56

很可能,调用函数时还没有任何缓冲。

在调用e.buffered.lengthTimeRanges.end()之前,应该向TimeRanges.end()添加一个检查

代码语言:javascript
复制
function getbufferedstart(el) {
  if(el.buffered.length) {
    return el.buffered.start(0);
  }
  else {
    return 'avoided a throw';
  }
}
   
var a = new Audio('https://dl.dropboxusercontent.com/s/8c9m92u1euqnkaz/GershwinWhiteman-RhapsodyInBluePart1.mp3');
a.onloadedmetadata = onwehavebufferedsomething;

console.log(getbufferedstart(a)); // avoided
console.log('really ?');
a.buffered.start(0); // Error

function onwehavebufferedsomething(evt) {
  console.log("now it's ok");
  console.log(getbufferedstart(a));  // 0
}
代码语言:javascript
复制
body>.as-console-wrapper{max-height:100vh}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50618827

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档