HTML5 音频元素 - 搜索滑块 - 无法在“HTMLMediaElement”上设置“currentTime”属性:提供的双精度值是非有限的

Bri*_*ian 4 html javascript audio jquery web-audio-api

这是我关于 Stack Overflow 的第一个问题;如果我做错了,请道歉。

我正在尝试使用 Web Audio API 为自己创建一个不错的小音频播放器。但是,我在尝试为用户创建“搜索”功能以在歌曲中跳过时遇到了问题。

HTML:

<p>Seek Slider</p>
<input id="seekslider" type="range" min="0" max="100" value="0" />
Run Code Online (Sandbox Code Playgroud)

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;
  }
}     
Run Code Online (Sandbox Code Playgroud)

错误:

无法在“HTMLMediaElement”上设置“currentTime”属性:提供的双精度值是非有限的。

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

我知道的值currentTime是一个带小数点的浮点数。

我尝试过:

parseFloat(e.clientX - seekslider.offsetLeft);
Run Code Online (Sandbox Code Playgroud)

除了使用parseFloat.

我只是有点困惑。我真诚地感谢你们提供的任何帮助。美好的一天,伙计们。

Kev*_*nis 5

这本身不是 jQuery 问题。

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

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