2011-08-24 16 views
10

Próbuję odtwarzać wideo HTML5 w odwrotnej kolejności na iPadzie (wideo musi przełączać się między krokiem do przodu i odwrotnie dowolnie w oparciu o dane wprowadzone przez użytkownika).Odtwarzanie wideo HTML5 wstecz na iOS

Element HTML5 zawiera właściwość o nazwie playbackRate, która umożliwia odtwarzanie wideo z większą lub mniejszą szybkością lub odwrotnie. Według Apple's documentation ta właściwość nie jest obsługiwana w systemie iOS.

Odtwarzanie w odwrotnej kolejności można sfałszować bez użycia numeru playbackRate, ustawiając właściwość currentTime kilka razy na sekundę (np. 10-30 aktualizacji na sekundę). To podejście działa w Safari na komputerze, ale wygląda na to, że wyszukiwanie ogranicza się na urządzeniach z systemem iOS do około 1 aktualizacji na sekundę - w moim przypadku zbyt wolno.

Czy istnieje sposób odtwarzania wideo HTML5 w tył na urządzeniu z systemem iOS (a mianowicie na iPadzie)?

(I 'm testowania na iPad 2 biegu 4.3.1)

+3

Może chcesz zapisać normalną i odwróconą kopię wideo na serwerze i przełączać się między nimi? – Mihai

+0

Próbowałem też. Chociaż zmiana była szybsza, niż się spodziewałem, wideo spadło i pojawił się logo QuickTime, itd. Potrzebuję tego, żeby był płynnym przełącznikiem. –

+0

Rozwiązałeś to? Jak długo film jest szczegółowy, czy można go podzielić na zbiór obrazów i narysować/przerzucić na obiekt canvas zamiast na

Odpowiedz

2

Atrybut playbackRate jest teraz obsługiwany w Safari iOS 6.

+0

Myślę, że jest źle, jak wspomniano w https://developer.apple.com/library/safari/#documentation/AudioVideo/Conceptual/Using_HTML5_Audio_Video/Device-SpecificConsiderations/Device-SpecificConsiderations.html#//apple_ref/doc/ uid/TP40009523-CH5-DontLinkElementID_1 – joafeldmann

+0

masz rację, działało w początkowej wersji systemu iOS 6, ale później wyłączyło je w wersji 6.0.2 lub innej. – kenwarner

3

jak sugeruje Mihai, stosować dwie wersje i zaktualizuj szukać lokalizacji, gdy użytkownik zmienia kierunek odtwarzania.

Umieszczaj filmy w DIV jeden na drugim, a gdy kierunek odtwarzania jest odwrócony, przełącz widoczność div (i wstrzymaj odtwarzanie ukrytej).

Więc to jest oś czasu:

  1. Użytkownik klika odtwarzania przełącznika.
  2. Wstrzymaj wyświetlany film.
  3. Uzyskaj Wyszukaj lokalizację wyświetlanego wideo.
  4. Odejmij tę wartość od czasu trwania wideo.
  5. Szukaj tej wartości w nie wyświetlanym wideo.
  6. Przełącz wyświetlane wideo DIV.
  7. Rozpocznij odtwarzanie nowo wyświetlanego wideo.
+0

Apple mówi, że "Odtwarzanie więcej niż jednego filmu obok siebie, częściowe nakładanie się lub całkowite nałożenie - nie jest obecnie obsługiwane na urządzeniach z systemem iOS". http://developer.apple.com/library/safari/#documentation/AudioVideo/Conceptual/Using_HTML5_Audio_Video/Device-SpecificConsiderations/Device-SpecificConsiderations.html#//apple_ref/doc/uid/TP40009523-CH5-SW10 –

+0

To będzie nie działa na urządzeniach z iOS. Jedynym sposobem na zrobienie opcji dwóch filmów wideo jest zwolnienie istniejącego wideo po przejściu na nowy, co powoduje znaczną przerwę i pokazuje logo QuickTime. –

+1

Możesz również spróbować połączyć wideo z przodu iz tyłu do tego samego pliku, a gdy grasz wstecz, po prostu przejdź do tyłu filmu i graj dalej. –

0

Moja sugestia to zrobić "fałszywy" odtwarzacz wideo w kodzie HTML. Następnie przechwyć próbę "odtworzenia" filmu przez użytkownika przy użyciu metod wywołania zwrotnego safari/ios. Następnie utwórz MPMoviePlayerController, który faktycznie ładuje wideo i wyświetla je na oryginalnej pozycji wideo w przeglądarce lub obsługuje tylko odtwarzanie pełnoekranowe. Protokół MPMediaPlayback obsługuje odtwarzanie wsteczne za pośrednictwem właściwości currentPlaybackRate, więc mam nadzieję, że będzie to tymczasowa poprawka, ponieważ nie widzę wersji Safari systemu iOS, która ostatecznie nie implementuje tej funkcji, ponieważ jest obsługiwana przez odtwarzacz natywny.

2

Dlaczego nie połączyć ze sobą wersji do tyłu i do przodu w jeden film?

To usuwa problem rozładowywania i ładowania wideo, gdy użytkownik odwraca kierunek. W przypadku podejścia z jednym filmem, gdy użytkownik odwraca kierunek, wszystko, co musisz zrobić, to znaleźć odpowiedni punkt w drugiej połowie filmu i szukać tam.

0

UWAGA: Byłem głupi i nieodebranych nietrywialne część pytania, więc po to całkiem bezużyteczny dla iOS celów

Po chwili Googling, znalazłem następujący kod wraz z objaśnieniem jak wspierać odwrotnego odtwarzanie wideo HTML5 w przeglądarkach opartych na WebKit:

function speedup(video, direction) { 
    if (direction == undefined) direction = 1; // or -1 for reverse 
    if (video.playbackRate != undefined) { 
     video.playbackRate = direction == 1 ? 2 : -2; 
    } else { // do it manually 
     video.setAttribute('data-playbackRate', setInterval ((function playbackRate() { 
     video.currentTime += direction; 
     return playbackRate; // allows us to run the function once and setInterval 
     })(), 500)); 
    } 
} 

function playnormal(video) { 
    if (video.playbackRate != undefined) { 
     video.playbackRate = 1; 
    } else { // do it manually clearInterval(video.getAttribute('data-playbackRate’)); } 
} 

Źródło: http://net.tutsplus.com/tutorials/html-css-techniques/html5-audio-and-video-what-you-must-know/

trzeba zdać w obiekcie html5 wideo do Spee funkcja dup, ale potem znowu, że funkcja mogłaby być zredukowana do następujących (nie testowałem tego jeszcze, że jest to funkcja specyficzna iPad):

function reverseVideo(video) { 
    video.playbackRate = -1; 
} 

Zapraszam do zabawy, i szukać więcej informacji na elemencie wideo html5 :)

+0

Ach, cholera, tak mi przykro, że jestem zbyt zmęczony. Za kilka minut zaktualizuję swoją odpowiedź, całkowicie przegapiłem obsługę nieobsługiwaną na iOS. :( –

Powiązane problemy