这让我发疯了。这是我用来设置当前时间的代码:
$("#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);
}
我似乎无法设置 audio_element.currentTime
获取它!
更糟糕的是,它适用于fireFox!无论如何,Chrome都会在0时重新启动。
以上代码在Firefox控制台中生成的内容:
CLICK: 63.82905432385121 Element: [object HTMLAudioElement] CurrentTime: 3.849546
在Chrome中:
CLICK: 63.82905432385121 Element: [object HTMLAudioElement] CurrentTime: 3.849546
请参阅?同一个!我们可以看到Chromes看到HTML音频元素(因为它可以获取值)。如果我audio_element.currentTime = 10;
它仍然无法正常工作(在Chrome 中,Firefox忠实地重新启动为10)..
答案 0 :(得分:2)
当我使用维基百科的Ogg文件进行测试时,您的代码工作正常。如果这确实是您的所有代码,那么此问题似乎是由媒体文件中的某种损坏或意外格式引起的。< / p>
您将无法使用代码解决此问题;您需要生成一个新的媒体文件,您的浏览器可以正确处理。也许尝试使用不同的音频软件(或不同的设置)来制作或重新处理媒体文件。
答案 1 :(得分:1)
如果格式不是问题:
我今天在Chrome中遇到过这个问题几次。浪费了这么多时间来解决它。 (第55.x版)
解决方案是重启Chrome。无数页面刷新后,突然没有设置值。它可能是一些缓存错误。我要强调的是,使用支持范围请求的开发服务器也是一个好主意。
如果我没有运行Node或Django,我使用:https://github.com/danvk/RangeHTTPServer