这让我发疯。这是我用来设置当前时间的代码:
$("#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 重新启动)..
最佳答案
当我使用来自维基百科的 Ogg 文件对其进行测试时,您的代码运行完美。如果这确实是您的所有代码,那么此问题似乎是由媒体文件中的某种损坏或意外格式引起的。
您将无法通过代码解决此问题;您将需要生成一个您的浏览器可以正确处理的新媒体文件。也许尝试使用不同的音频软件(或不同的设置)来制作或重新处理媒体文件。
关于javascript - 我可以获得 audio.currentTime 但无法设置它(在 Google Chrome 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30351252/