Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我可以获取audio.currentTime,但不能设置它(在Google Chrome中)_Javascript_Google Chrome_Firefox_Html5 Audio - Fatal编程技术网

Javascript 我可以获取audio.currentTime,但不能设置它(在Google Chrome中)

Javascript 我可以获取audio.currentTime,但不能设置它(在Google Chrome中),javascript,google-chrome,firefox,html5-audio,Javascript,Google Chrome,Firefox,Html5 Audio,这让我快发疯了。下面是我用来设置当前时间的代码: $("#audio").click(function(e) { e.preventDefault(); mr_waveform_skip(e) }); function mr_waveform_skip(event) { clientX = event.clientX; left = event.currentTarget.offsetLeft; clickoffset = clientX - left;

这让我快发疯了。下面是我用来设置当前时间的代码:

$("#audio").click(function(e) {
    e.preventDefault();
    mr_waveform_skip(e)
});

function mr_waveform_skip(event) {
    clientX = event.clientX;
    left = event.currentTarget.offsetLeft;
    clickoffset = clientX - left;
    percent = clickoffset/event.currentTarget.offsetWidth
    audio_duration = audio_element.duration;
    duration_seek = percent*audio_duration;
    audio_element.currentTime = duration_seek;
    // audio_element.currentTime = 10;
    console.log('CLICK: ' + duration_seek + ' Element: ' + audio_element + ' CurrentTime: ' + audio_element.currentTime);
}
我似乎无法设置音频元素。当前时间只获取它

更糟糕的是,它在fireFox中工作!无论发生什么情况,Chrome都会在0重新启动

这是上面代码在Firefox控制台中产生的结果:

CLICK: 63.82905432385121 Element: [object HTMLAudioElement] CurrentTime: 3.849546
镀铬:

CLICK: 63.82905432385121 Element: [object HTMLAudioElement] CurrentTime: 3.849546

看到了吗?同一个!我们可以看到Chromes看到HTML音频元素(因为它可以获得值)。如果我做了
audio\u element.currentTime=10它仍然不工作(在Chrome中,Firefox忠实地在10点重新启动)

当我用维基百科的Ogg文件测试代码时,你的代码工作得非常完美。。如果这真的是您的全部代码,那么这个问题似乎是由媒体文件中的某种损坏或意外格式引起的


您将无法用代码修复此问题;您需要生成一个新的媒体文件,以便浏览器能够正确处理。可能尝试使用不同的音频软件(或不同的设置)生成或重新处理媒体文件。

如果格式没有问题:

今天我在Chrome上碰到过好几次这个问题。浪费了这么多时间试图解决它。(55.x版)

解决方案是重新启动Chrome。在无数次页面刷新后,该值突然没有设置。可能是缓存错误。我要强调的是,使用支持范围请求的开发服务器也是一个好主意


如果我没有运行Node或Django,我会使用:

尝试调用audio.stop(),然后audio.currentTime=10,然后audio.play()。我想你的意思是
audio.pause()
,但它确实有效。。。在Firefox中。Chrome一直在0处重新启动:[你尝试使用其他音频编解码器了吗?@MartinAdámek音频元素上没有stop()方法。@apsillers我会被诅咒的,它可以工作。只需发布一个大意为“也许你的ogg文件很奇怪”的答案,这样我就可以接受了。非常感谢你。这正是我的问题。谢谢。