Criei um aplicativo da web que usa a tag HTML5 e o código JavaScript que processa outro conteúdo sincronizado com o vídeo em execução. Funciona muito bem em navegadores de desktop: Firefox, Chrome e Safari. Em um iPhone ou DroidX, o player de vídeo nativo aparece e assume a tela, obscurecendo o outro conteúdo dinâmico que eu quero exibir simultaneamente com o vídeo.
Existe alguma maneira de contornar isso? Se necessário, vou descobrir como escrever aplicativos nativos para ambas as plataformas, mas isso me pouparia muito esforço se eu pudesse usar o HTML5 / JavaScript.
Respostas:
No iOS 10 ou superior
A Apple ativou o atributo
playsinline
em todos os navegadores no iOS 10, portanto, isso funciona perfeitamente:No iOS 8 e iOS 9
Resposta curta: use iphone-inline-video , ele permite a reprodução em linha e sincroniza o áudio.
Resposta longa: você pode contornar esse problema simulando a reprodução deslizando o vídeo em vez de realmente reproduzi
.play()
-lo.fonte
Há uma propriedade que ativa / desativa a reprodução de mídia em linha no navegador da web do iOS (se você estivesse escrevendo um aplicativo nativo, seria
allowsInlineMediaPlayback
propriedade de um UIWebView). Por padrão, no iPhone, isso está definido comoNO
, mas no iPad, está definido comoYES
.Felizmente para você, você também pode ajustar esse comportamento em HTML da seguinte maneira:
<video id="myVideo" width="280" height="140" webkit-playsinline>
... espero que isso resolva isso para você. Não sei se funcionará nos seus dispositivos Android. É uma propriedade de kit da web, por isso pode. Vale a pena, de qualquer maneira.
fonte
<preference name="AllowInlineMediaPlayback" value="true" />
Resposta antiga (aplicável até 2016)
Aqui está um link para desenvolvedor da Apple que explicitamente diz que:
no iPhone e iPod touch, que são dispositivos de tela pequena, "O vídeo NÃO é apresentado na página da Web"
Considerações específicas do dispositivo Safari
Suas opções :
webkit-playsinline
atributo funciona para vídeos HTML5 no iOS, mas somente quando você salva a página da web na tela inicial como um aplicativo da web - não se abrir uma página no SafariUIWebView
é possível reproduzir o vídeo embutido, mas somente se você definir aallowsInlineMediaPlayback
propriedade para aUIWebView
classe como truefonte
<preference name="AllowInlineMediaPlayback" value="true" />
No iOS 10 beta 4.O código correto em HTML5 é
webkit-playsinline
é para iOS <10 eplaysinline
é para iOS> = 10Veja detalhes em https://webkit.org/blog/6784/new-video-policies-for-ios/
fonte
De acordo com esta página https://developer.apple.com/library/archive/documentation/AppleApplications/Reference/SafariHTMLRef/Articles/Attributes.html , só estará disponível se (Ativado apenas em um UIWebView com a propriedade allowInlineMediaPlayback definida como YES. ) Entendo no Mobile Safari, isso é SIM no iPad e NÃO no iPhone e iPod Touch.
fonte
Não sei sobre o Android, mas o Safari no iPhone ou iPod touch reproduzirá todos os vídeos em tela cheia por causa do tamanho pequeno da tela. No iPad, ele reproduz o vídeo na página, mas permite que o usuário o faça em tela cheia.
fonte