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

yPh*_*hil 6 javascript firefox google-chrome 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);
}
Run Code Online (Sandbox Code Playgroud)

我似乎无法设置 audio_element.currentTime只能得到它!

更糟糕的是,它适用于fireFox!无论如何,Chrome都会重新启动为0.

这就是上面代码在Firefox控制台中生成的内容:

CLICK: 63.82905432385121 Element: [object HTMLAudioElement] CurrentTime: 3.849546
Run Code Online (Sandbox Code Playgroud)

在Chrome中:

CLICK: 63.82905432385121 Element: [object HTMLAudioElement] CurrentTime: 3.849546
Run Code Online (Sandbox Code Playgroud)

看到?同一个!我们可以看到Chromes看到HTML音频元素(因为它可以获得值).如果我这样做audio_element.currentTime = 10;仍然无效(在Chrome中,Firefox忠实地重启10)

aps*_*ers 2

当我使用维基百科的 Ogg 文件对其进行测试时,您的代码工作得很好。如果这确实是您的全部代码,那么此问题似乎是由媒体文件中的某种损坏或意外格式引起的。

您将无法通过代码解决此问题;您将需要生成一个浏览器可以正确处理的新媒体文件。也许尝试使用不同的音频软件(或不同的设置)来生成或重新处理媒体文件。