Stworzyłem aplikację internetową, która używa tagu HTML5 i kodu JavaScript, który renderuje inne treści zsynchronizowane z uruchomionym wideo. Działa świetnie w przeglądarkach stacjonarnych: Firefox, Chrome i Safari. Na iPhonie lub DroidX rodzimy odtwarzacz wideo pojawia się i przejmuje ekran, zasłaniając w ten sposób inne dynamiczne treści, które chcę wyświetlać jednocześnie z wideo.
Czy można to obejść? W razie potrzeby wymyślę, jak pisać aplikacje natywne dla obu tych platform, ale zaoszczędziłoby mi mnóstwo wysiłku, gdybym mógł po prostu trzymać się HTML5 / JavaScript.
Odpowiedzi:
W iOS 10+
Firma Apple włączyła ten atrybut
playsinline
we wszystkich przeglądarkach na iOS 10, więc działa to bezproblemowo:<video src="file.mp4" playsinline>
W iOS 8 i iOS 9
Krótka odpowiedź: użyj iphone-inline-video , umożliwia odtwarzanie inline i synchronizuje dźwięk.
Długa odpowiedź: Można obejść ten problem poprzez symulację odtwarzanie przez szumiące wideo zamiast faktycznie
.play()
„ing go.źródło
Istnieje właściwość, która włącza / wyłącza odtwarzanie multimediów w linii w przeglądarce internetowej iOS (jeśli pisałeś aplikację natywną, byłaby to
allowsInlineMediaPlayback
właściwość UIWebView). Domyślnie na iPhonie jest to ustawioneNO
, ale na iPadzie jest ustawione naYES
.Na szczęście dla Ciebie możesz również dostosować to zachowanie w HTML w następujący sposób:
<video id="myVideo" width="280" height="140" webkit-playsinline>
... to powinno, miejmy nadzieję, rozwiązać problem. Nie wiem, czy będzie działać na Twoich urządzeniach z Androidem. Jest to własność zestawu internetowego, więc może. W każdym razie warto iść.
źródło
<preference name="AllowInlineMediaPlayback" value="true" />
Stara odpowiedź (obowiązuje do 2016 r.)
Oto link do programisty Apple, który wyraźnie mówi, że -
na iPhonie i iPodzie touch, które są urządzeniami z małym ekranem, „Wideo NIE jest prezentowane na stronie internetowej”
Uwagi dotyczące urządzenia Safari
Twoje opcje :
webkit-playsinline
prace atrybutów dla HTML5 video na iOS, ale tylko po zapisaniu strony internetowej do ekranu głównego jako webapp - Nie, jeśli otworzyło stronę w SafariUIWebView
umożliwia odtwarzanie wideo w tekście, ale tylko wtedy, gdy ustawiszallowsInlineMediaPlayback
właściwość dlaUIWebView
klasy na trueźródło
<preference name="AllowInlineMediaPlayback" value="true" />
W iOS 10 beta 4, właściwy kod w HTML5 to
<video src="file.mp4" webkit-playsinline="true" playsinline="true">
webkit-playsinline
jest dla iOS <10 iplaysinline
jest dla iOS> = 10Zobacz szczegóły na https://webkit.org/blog/6784/new-video-policies-for-ios/
źródło
Zgodnie z tą stroną https://developer.apple.com/library/archive/documentation/AppleApplications/Reference/SafariHTMLRef/Articles/Attributes.html jest ona dostępna tylko wtedy, gdy (Włączona tylko w UIWebView z właściwością allowInlineMediaPlayback ustawioną na TAK. ) Rozumiem, że w Mobile Safari jest to TAK na iPadzie i NIE na iPhonie i iPodzie Touch.
źródło
Nie znam Androida, ale Safari na iPhonie lub iPodzie touch będzie odtwarzać wszystkie filmy na pełnym ekranie ze względu na mały rozmiar ekranu. Na iPadzie odtworzy wideo na stronie, ale umożliwi użytkownikowi wyświetlenie go na pełnym ekranie.
źródło