2015-05-20 8 views
6

Dies wird mich verrückt. Hier ist der Code, den ich verwenden aktuelle Zeit einzustellen:Ich kann audio.currentTime bekommen, aber es nicht (in Google Chrome) gesetzt

$("#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); 
} 

ich nicht gesetzt scheinen audio_element.currentTime nur get it!

Und schlimmer, es funktioniert in FireFox! Chrome startet bei 0 neu, egal was passiert.

Dies ist, was der obige Code erzeugt in Firefox Konsole:

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

Und in Chrome:

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

sehen? Das gleiche! Wir können sehen, dass Chromes das HTML-Audioelement sieht (da es den Wert erhalten kann). Wenn ich audio_element.currentTime = 10; tue es immer noch nicht funktioniert (in Chrome, getreulich Firefox bei 10 startet) ..

+0

Versuchen audio.stop() aufrufen, dann audio.currentTime = 10, dann (audio.play). –

+0

Ich glaube du meintest 'audio.pause()' aber ja, es funktioniert ... In Firefox. Chrome startet weiter bei 0: [ – yPhil

+0

Haben Sie es mit einem anderen Audio-Codec versucht? – K3N

Antwort

2

Ihr Code funktioniert perfekt, wenn ich es mit mit einer Ogg-Datei aus Wikipedia getestet .. Wenn das wirklich ist, alle Ihr Code, dann scheint dieses Problem durch eine Art von Korruption oder unerwartetes Format in Ihrer Mediendatei verursacht werden.

Sie können dieses Problem nicht mit Code beheben; Sie müssen eine neue Mediendatei erstellen, die Ihr Browser korrekt verarbeiten kann. Versuchen Sie vielleicht, eine andere Audio-Software (oder andere Einstellungen) zu verwenden, um die Mediendatei zu erstellen oder neu zu verarbeiten.

+0

war es mein Problem genau. Vielen Dank. –

1

Wenn das Format ist nicht das Problem:

ich in dieses Problem in Chrome heute ein paar Mal gestoßen habe. Viel Zeit verschwendet, um es zu lösen. (Version 55.x)

Die Lösung ist Chrome neu zu starten. Nach unzähligen Seitenauffrischungen ist der Wert plötzlich nicht gesetzt. Es ist wahrscheinlich ein Cache-Fehler. Ich möchte betonen, dass es auch eine gute Idee ist, einen Entwicklungsserver zu verwenden, der Bereichsanforderungen unterstützt.

Wenn ich renne nicht Knoten oder Django Ich benutze: https://github.com/danvk/RangeHTTPServer