Creé una aplicación web que usa la etiqueta HTML5 y el código JavaScript que procesa otro contenido sincronizado con el video en ejecución. Funciona muy bien en los navegadores de escritorio: Firefox, Chrome y Safari. En un iPhone o un DroidX, el reproductor de video nativo aparece y se hace cargo de la pantalla, ocultando así el otro contenido dinámico que quiero mostrar simultáneamente con el video.
¿Hay alguna forma de evitar esto? Si es necesario, descubriré cómo escribir aplicaciones nativas para ambas plataformas, pero me ahorraría un montón de esfuerzo si pudiera seguir con HTML5 / JavaScript.
Respuestas:
En iOS 10+
Apple habilitó el atributo
playsinline
en todos los navegadores en iOS 10, por lo que esto funciona a la perfección:En iOS 8 e iOS 9
Respuesta corta: use iphone-inline-video , permite la reproducción en línea y sincroniza el audio.
Respuesta larga: puede solucionar este problema simulando la reproducción ojeando el video en lugar de realmente reproducirlo
.play()
.fuente
Hay una propiedad que habilita / deshabilita la reproducción de medios en línea en el navegador web iOS (si estuviera escribiendo una aplicación nativa, sería
allowsInlineMediaPlayback
propiedad de un UIWebView). De forma predeterminada en iPhone, está configurado enNO
, pero en iPad está configurado enYES
.Afortunadamente para usted, también puede ajustar este comportamiento en HTML de la siguiente manera:
<video id="myVideo" width="280" height="140" webkit-playsinline>
... eso debería resolverlo para ti. No sé si funcionará en sus dispositivos Android. Es una propiedad de webkit, por lo que podría. Vale la pena ir, de todos modos.
fuente
<preference name="AllowInlineMediaPlayback" value="true" />
Respuesta anterior (aplicable hasta 2016)
Aquí hay un enlace de desarrollador de Apple que dice explícitamente que:
en iPhone y iPod touch, que son dispositivos de pantalla pequeña, "el video NO se presenta dentro de la página web"
Consideraciones específicas del dispositivo Safari
Sus opciones :
webkit-playsinline
atributo funciona para videos HTML5 en iOS, pero solo cuando guarda la página web en su pantalla de inicio como una aplicación web , no si abre una página en SafariUIWebView
permite reproducir el video en línea, pero solo si establece laallowsInlineMediaPlayback
propiedad de laUIWebView
clase en truefuente
<preference name="AllowInlineMediaPlayback" value="true" />
En iOS 10 beta 4. El código correcto en HTML5 es
webkit-playsinline
es para iOS <10 yplaysinline
es para iOS> = 10Ver detalles en https://webkit.org/blog/6784/new-video-policies-for-ios/
fuente
De acuerdo con esta página https://developer.apple.com/library/archive/documentation/AppleApplications/Reference/SafariHTMLRef/Articles/Attributes.html solo está disponible si (Habilitado solo en UIWebView con la propiedad allowInlineMediaPlayback establecida en YES. ) Entiendo que en Mobile Safari esto es SÍ en iPad y NO en iPhone y iPod Touch.
fuente
No sé acerca de Android, pero Safari en el iPhone o iPod touch reproducirá todos los videos en pantalla completa debido al pequeño tamaño de la pantalla. En el iPad reproducirá el video en la página, pero permitirá que el usuario lo haga en pantalla completa.
fuente