gpt4 book ai didi

javascript - HTML5 音频元素 - 搜索 slider - 无法在 'currentTime' 上设置 'HTMLMediaElement' 属性 : The provided double value is non-finite

转载 作者:搜寻专家 更新时间:2023-10-31 23:23:53 26 4
gpt4 key购买 nike

这是我在 Stack Overflow 上的第一个问题;如果我做错了,我深表歉意。

我正在尝试使用 Web Audio 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;
}
}

错误:

Failed to set the 'currentTime' property on 'HTMLMediaElement': The provided double value is non-finite.

现在,console.log(typeof(seekslider.value)) 返回一个数字。但是,console.log(seekslider.value) 返回 NaN

我理解 currentTime 的值是一个带小数点的 float 。

我尝试过:

parseFloat(e.clientX - seekslider.offsetLeft);

除了使用 parseFloat 解决此问题的许多其他尝试之外。

我只是有点困惑。我真诚地感谢你们提供的任何帮助。大家好。

最佳答案

这本身不是 jQuery 问题。

问题是 JQuery 对象没有 offsetLeft。只有实际的 DOM 元素才具有该属性。

如此有效,您正在做的是 e.clientX - undefined,这当然是 NaN

关于javascript - HTML5 音频元素 - 搜索 slider - 无法在 'currentTime' 上设置 'HTMLMediaElement' 属性 : The provided double value is non-finite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34797312/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com