javascript - 我可以获得 audio.currentTime 但无法设置它(在 Google Chrome 中)

标签 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;
    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/

相关文章:

javascript - 类型错误 : modules[moduleId] is undefined

Firefox 的 CSS 动画问题

javascript - Jquery .empty() 前 2 个元素

javascript - jQuery 添加更多输入 maxLimit 不起作用

javascript - 如何获取文件本身的名称

javascript - 是否可以从 Firefox 运行 bash 脚本? (使用 Firefox 附加 SDK)

javascript - jQuery,当文本输入因另一个事件而改变时如何捕获

javascript - 通过脚本更改浏览器设置

css - 在 Chrome 的 CSS 中设置不透明度

android - Chrome数据压缩和文件上传