HTML5 音频元素 - 查找滑块 - 无法在“HTMLMediaElement”上设置“当前时间”属性:提供的双精度值
HTML5 audio element - seek slider - Failed to set the 'currentTime' property on 'HTMLMediaElement': The provided double value is non-finite
这是我关于Stack Overflow的第一个问题;如果我做错了,请道歉。
我正在尝试使用 Web 音频 API 为自己创建一个漂亮的小音频播放器。但是,我在尝试为用户创建"搜索"功能以在歌曲中跳过时遇到了问题。
.HTML:
<p>Seek Slider</p>
<input id="seekslider" type="range" min="0" max="100" value="0" />
JavaScript:
var seekslider = $('#seekslider');
$(seekslider).mousedown(function(e) {
seeking = true;
seek(e);
});
$(seekslider).mousemove(function(e) {
seek(e);
});
$(seekslider).mouseup(function(e) {
seeking = false;
});
function seek(e) {
if (seeking) {
seekslider.value = e.clientX - seekslider.offsetLeft;
console.log(typeof(seekslider.value));
console.log(seekslider.value, audio.currentTime);
seekto = audio.duration * (seekslider.value / 100);
console.log(seekto);
audio.currentTime = seekto;
}
}
错误:
未能在"HTMLMediaElement"上设置"currentTime"属性:提供的双精度值是非有限的。
现在,console.log(typeof(seekslider.value))
返回一个数字。但是,console.log(seekslider.value)
返回NaN
.
我知道currentTime
的值是带有小数点的浮点数。
我尝试过:
parseFloat(e.clientX - seekslider.offsetLeft);
除了许多其他尝试使用parseFloat
解决此问题之外
我只是有点困惑。 我真诚地感谢你们提供的任何帮助。 大家好。
这本身不是jQuery问题。
问题是 JQuery 对象没有offsetLeft
。只有实际的 DOM 元素才具有该属性。
所以你正在做的实际上是e.clientX - undefined
,这当然是NaN
。
我已经解决了我的问题。 看起来jQuery不能很好地与Web音频API配合使用。
改变 var seekslider = $('#seekslider');
至
var seekslider = document.getElementById('seekslider');
使程序工作。 我会把它留在那里,以防它绊倒任何其他新手开发人员,比如我自己。
isFinite() 将解决此错误:
if (!isFinite(seekto)) {
console.log(seekto);
audio.currentTime = seekto;
}
相关文章:
- 将当前时间添加到我的页面上的特定部分
- 当点击今天按钮时,Bootstrap Date Time Picker未选择当前时间
- javascript函数将当前时间显示为html选择标记的预选值
- angularjs计算开始时间和当前时间之间的时间差
- 以角度nvd3折线图显示当前时间
- 默认情况下,引导日期时间选取器当前日期和当前时间
- 从系统日期中选择当前时间
- 限制 HTML5 视频当前时间
- 使用 javascript 解析和显示 HTML 音频当前时间
- javascript(angularJS):添加当前时间到日期和格式
- 从PHP脚本获取音频文件时,更改JavaScript音频对象的当前时间
- 悬停时显示当前时间
- 如何获取SVG动画的当前时间/位置
- 如何在页面加载时将当前时间和日期的格式设置为默认格式
- 如何根据当前时间从当前年龄计算出生日期
- 使用当前时间同步显示
- Vis.js聚焦于“当前时间”(红线)
- 如何使用Moment.JS检查当前时间是否在2次之间
- HTML5 音频元素 - 查找滑块 - 无法在“HTMLMediaElement”上设置“当前时间”属性:提供的双精度值
- 当当前时间和开始时间(源标记中的startat属性)匹配时,我如何播放视频