2015-05-20 9 views
6

To doprowadza mnie do szału. Oto kod używam ustawić aktualny czas:Mogę pobrać audio.currentTime, ale go nie ustawiam (w Google Chrome)

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

I nie może wydawać się ustawićaudio_element.currentTime tylko dostać to!

Co gorsza, działa w fireFox! Chrome uruchamia się ponownie o 0, bez względu na wszystko.

To właśnie powyższy kod w konsoli Firefox:

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

aw Chrome:

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

zobaczyć? Ten sam! Widzimy, że Chromes widzi element audio HTML (ponieważ może on uzyskać wartość). Jeśli robię audio_element.currentTime = 10; nadal nie działa (w Chrome, Firefox lojalnie restartuje w 10) ..

+0

Spróbuj zadzwonić audio.stop(), a następnie audio.currentTime = 10, następnie audio.play(). –

+0

Myślę, że chodziło o 'audio.pause()' ale tak, to działa ... W Firefox. Chrome nadal uruchamia się ponownie o 0: [ – yPhil

+0

) Czy próbowałeś z innym kodekiem audio? – K3N

Odpowiedz

2

Twój kod działa idealnie gdy testowałem go z plikiem Ogg z Wikipedii .. Jeśli to naprawdę jest wszystko Twój kod, ten problem wydaje się być spowodowany jakimś korupcją lub nieoczekiwanym formatem w twoim pliku multimedialnym.

Nie można naprawić tego problemu za pomocą kodu; będziesz musiał stworzyć nowy plik multimedialny, który Twoja przeglądarka może przetworzyć poprawnie. Być może spróbuj użyć innego oprogramowania audio (lub innych ustawień), aby wyprodukować lub ponownie przetworzyć plik multimedialny.

+0

To był dokładnie mój problem. Dzięki. –

1

Jeśli format nie jest problemem:

ja wpadłem na ten problem w Chrome kilka razy dzisiaj. Zmarnował tyle czasu, próbując go rozwiązać. (Wersja 55.x)

Rozwiązaniem jest ponowne uruchomienie Chrome. Po niezliczonych odświeżeniach strony wartość nagle nie jest ustawiona. To prawdopodobnie jakiś błąd w pamięci podręcznej. Podkreślam, że dobrym pomysłem jest również użycie serwera rozwoju obsługującego żądania zasięgu.

Gdybym nie biegnę lub Node Django używam: https://github.com/danvk/RangeHTTPServer

Powiązane problemy