working vídeos videos ver reproduzca reproducir que poner not móviles dispositivos como chrome automaticamente android html5 html5-video

android - videos - reproducir vídeos html5 en dispositivos móviles



¿Cómo reproducir automáticamente el video HTML5 mp4 en Android? (14)

Android en realidad tiene una API para esto! El método es setMediaPlaybackRequiresUserGesture() . Lo encontré después de una gran cantidad de excavaciones en la reproducción automática de videos y muchos intentos de pirateo de SO. Aquí hay un ejemplo de Blair Vanderhoof :

package com.example.myProject; import android.os.Bundle; import org.apache.cordova.*; import android.webkit.WebSettings; public class myProject extends CordovaActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); super.init(); // Set by <content src="index.html" /> in config.xml super.loadUrl(Config.getStartUrl()); //super.loadUrl("file:///android_asset/www/index.html"); WebSettings ws = super.appView.getSettings(); ws.setMediaPlaybackRequiresUserGesture(false); } }

Había desarrollado una página móvil por asp.net para reproducir video mp4.

Sé que iOS ha desactivado la función de reproducción automática para minimizar el ancho de banda del usuario, así que ¿cómo puedo reproducir automáticamente el video HTML5 mp4 en Android?

Ya había puesto la reproducción automática en código HTML5, pero no funciona.

El siguiente es mi código:

<video autoplay controls id=''video1'' width=''100%'' poster=''images/top_icon.png'' webkitEnterFullscreen poster preload=''true''> <source src=''http://192.xxx.xxx.xx/XXXXVM01.mp4'' type=''video/mp4; codecs=''avc1.42E01E, mp4a.40.2'' > </video>

Además, solucioné el problema de que el usuario que hacía clic en la superposición de imágenes puede reproducir el video. Gracias karthi

Aquí está el código:

<script type="text/javascript"> $(document).ready(function() { $("#video1").bind("click", function() { var vid = $(this).get(0); if (vid.paused) { vid.play(); } else { vid.pause(); } }); }); </script>

Gracias

Joe




En Android 4.1 y 4.2, uso el siguiente código.

evt.initMouseEvent( "click", true,true,window,0,0,0,0,0,false,false,false,false,0, true ); var v = document.getElementById("video"); v.dispatchEvent(evt);

donde html es

<video id="video" src="sample.mp4" poster="image.jpg" controls></video>

Esto funciona bien Pero en Android 4.4, no funciona.


En Android 4.4 y versiones posteriores, puede eliminar la necesidad de un gesto de usuario siempre que el componente de video HTML5 se encuentre en su propio WebView.

webview.setWebChromeClient(new WebChromeClient()); webview.getSettings().setMediaPlaybackRequiresUserGesture(false);

Para que el video se reproduzca automáticamente, aún necesitarás agregar reproducción automática al elemento de video:

<video id=''video'' controls autoplay> <source src=''http://192.xxx.xxx.xx/XXXXVM01.mp4'' type=''video/mp4; codecs="avc1.42E01E, mp4a.40.2"'' > </video>


La reproducción automática solo funciona la segunda vez. en android 4.1+ tienes que tener algún tipo de evento de usuario para que funcione el primer play (). Una vez que ha sucedido, entonces el inicio automático funciona.

Esto es para que el usuario esté reconociendo que está usando ancho de banda.

Hay otra pregunta que responde a esto. Autostart html5 video usando el navegador de Android 4



Nota importante: tenga en cuenta que si Google Chrome Data Saver está habilitado en la configuración de Chrome, entonces la reproducción automática se desactivará.



Puede agregar los atributos ''silenciado'' y ''reproducción automática'' juntos para habilitar la reproducción automática para dispositivos Android.

p.ej

<video id="video" class="video" autoplay muted >


Similar a la respuesta de KNaito, el siguiente es el truco para mí

function simulateClick() { var event = new MouseEvent(''click'', { ''view'': window, ''bubbles'': true, ''cancelable'': true }); var cb = document.getElementById(''player''); var canceled = !cb.dispatchEvent(event); if (canceled) { // A handler called preventDefault. alert("canceled"); } else { // None of the handlers called preventDefault. alert("not canceled"); } }


Simplifiqué el Javascript para activar el video para comenzar.

var bg = document.getElementById ("bg"); function playbg() { bg.play(); }

<video id="bg" style="min-width:100%; min-height:100%;" playsinline autoplay loop muted onload="playbg(); "><source src="Files/snow.mp4" type="video/mp4"></video> </td></tr> </table>

* "Files / snow.mp4" es solo url de muestra


Use el siguiente código:

// get the video var video = document.querySelector(''video''); // use the whole window and a *named function* window.addEventListener(''touchstart'', function videoStart() { video.play(); console.log(''first touch''); // remove from the window and call the function we are removing this.removeEventListener(''touchstart'', videoStart); });

Parece que ya no hay una manera de iniciarse automáticamente.

Esto hace que la primera vez que toquen la pantalla se reproduzca el video. También se eliminará a sí mismo en la primera ejecución para que pueda evitar que se acumulen varios oyentes.


<video autoplay controls id=''video1'' width=''100%'' poster=''images/top_icon.png'' webkitEnterFullscreen poster preload=''true''> <source src=''http://192.xxx.xxx.xx/XXXXVM01.mp4'' type=''video/mp4; codecs=''avc1.42E01E, mp4a.40.2'' > </video>