Yo uso android webview en mi aplicación para la visualización de vídeo de youtube es trabajar bien.

Pero yo quiero que la reproducción automática.

Este es mi actividad me anexar «?autoplay=1» a videoUrl pero nada cambio todavía no es el juego automático.

public class LandVideoAct extends Activity {
    WebView mWebView;
    String videoURL = "";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.landfull);
        videoURL = "http://www.youtube.com/embed/VYIi49czywo?autoplay=1";
        mWebView = (WebView) findViewById(R.id.fullwebview);

        String vid = "<html><body style=\"margin: 0; padding: 0\"><iframe  width=\"100%\" height=\"100%\" src=\""+videoURL+"\" type=\"text/html\" frameborder=\"0\"></iframe><body><html>";

        WebChromeClient mWebChromeClient = new WebChromeClient(){
            public void onProgressChanged(WebView view, int newProgress) {
            }
        };

        mWebView.getSettings().setPluginState(WebSettings.PluginState.ON);
        mWebView.setWebChromeClient(mWebChromeClient);
        mWebView.setWebViewClient(new WebViewClient() {
            public void onPageFinished(WebView view, String url) {
                mWebView.loadUrl("javascript:(function() { document.getElementsByTagName('video')[0].play(); })()"); 
            }
        });
        mWebView.getSettings().setJavaScriptEnabled(true);
        mWebView.getSettings().setAppCacheEnabled(true);
        mWebView.setInitialScale(1);
        mWebView.getSettings().setLoadWithOverviewMode(true);
        mWebView.getSettings().setUseWideViewPort(true);
        if (Build.VERSION.SDK_INT < 17) {
            Log.i("GPSNETWORK", "<17");
        } else {
            Log.i("GPSNETWORK", Build.VERSION.SDK_INT+">=17");
            mWebView.getSettings().setMediaPlaybackRequiresUserGesture(false);
        }
        mWebView.loadData(vid, "text/html", "UTF-8");
    }
}

OriginalEl autor user2955394 | 2014-07-25

7 Comentarios

  1. 2

    Retirar esta pregunta. Hay un par de sugerencias que pueden funcionar para usted, sin embargo, la persona que hizo la pregunta no decir que si trabajaba para ellos o no.

    Más de lo que estoy leyendo es decir que la mayoría de las plataformas móviles bloque de reproducción automática para evitar la mala experiencia de usuario.

    Usted puede probar este código javascript a continuación:

    var myvideo = document.getElementsByTagName('video')[0]; myvideo.play();

    Para Android 4.2.2+ intente agregar esta en su código nativo:

    WebView.getSettings().setMediaPlaybackRequiresUserGesture(false);

    También echa un vistazo a esta página. Lo que añade el código siguiente para la reproducción automática de vídeo:

    webview.setWebViewClient(new WebViewClient() {
            //autoplay when finished loading via javascript injection
            public void onPageFinished(WebView view, String url) { webview.loadUrl("javascript:(function() { document.getElementsByTagName('video')[0].play(); })()"); }
        });
        webview.setWebChromeClient(new WebChromeClient());
    
        webview.loadUrl("http://html5demos.com/video");
    }
    yo trato de hacer con su sugerencia. Pero aún así no juego automático. Plese ver en mi pregunta puedo editar con tu sugerencia. puedo comprobar mi versión del SDK es de 18
    Encontraste una solución para esto ?

    OriginalEl autor Supersnake

  2. 0

    Hacer como esta. Espero que ayude

    String html = "<iframe class=\"youtube-player\" style=\"border: 0; width: 100%; height: 95%; padding:0px; margin:0px\" id=\"ytplayer\" type=\"text/html\" src=\"http://www.youtube.com/embed/"
                    + "J2fB5XWj6IE?autoplay=1"
                    + "&fs=0\" frameborder=\"0\">\n"
                    + "</iframe>\n";

    Desde el link de abajo

    En Chrome, de reproducción automática también está deshabilitada

    (https://code.google.com/p/chromium/issues/detail?id=159336)

    Yo creo que lo mismo sucede con las versiones más recientes del defecto
    Android Navegador Web.

    gracias pero no funciona para mí(no de error, pero todavía no auto play)
    ¿De verificación de vídeo funciona o no?
    cuando ejecuto mi aplicación del espectáculo de vídeo botón de play y cuando hago clic en el botón de jugar es el trabajo bien. Pero quiero de juego automático, que no quiere clic en el botón reproducir.
    comprobar respuesta actualizada
    Oh, mala suerte para mí.

    OriginalEl autor Top Cat

  3. 0

    Está desactivado por defecto basado en el sistema operativo de la razón. Chrome desactiva el contenido por defecto, también. Usted puede tratar de código de su aplicación o el uso de Java, Javascript y YouTube-API. Tal vez webkit va a permitir decidir qué obra de teatro basada en su estado de la batería en el futuro.

    OriginalEl autor Fabian

  4. 0

    Este código hará el truco, yo estoy usando jquery, pero se puede hacer con un simple javascript.

    <iframe id="myvideo" src="https://www.youtube-nocookie.com/embed/Vhh_GeBPOhs?autoplay=1&amp;rel=0&amp;controls=0&amp;showinfo=0&amp;rel=0&amp;loop=1&amp;modestbranding=1&amp;wmode=transparent&amp;mute=1amp;enablejsapi=1" width="560" height="315" frameborder="0" allowfullscreen></iframe>
    <script>
    setInterval(function(){
      $('#myvideo')[0].contentWindow.postMessage('{"event":"command","func":"playVideo","args":""}', '*');
     }, 250);
    </script>

    OriginalEl autor xavip

  5. -1

    Uso del modo de Escritorio en WebView. Youtube reproducción automática. Añadir esto:

    webView.getSettings().setUserAgentString("Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.137 Safari/537.36")

    Como este:

    val webView: WebView = findViewById(R.id.webView)
    webView.settings.javaScriptEnabled = true
    webView.settings.domStorageEnabled = true
    webView.loadUrl("http://your.web.site/")
    webView.webChromeClient = object : WebChromeClient() {}
    webView.settings.setPluginState(WebSettings.PluginState.ON)
    webView.settings.setPluginState(WebSettings.PluginState.ON_DEMAND)
    webView.settings.setUserAgentString("Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.137 Safari/537.36")
    if(android.os.Build.VERSION.SDK_INT>16){webView.settings.setMediaPlaybackRequiresUserGesture(false)}
    webView.webViewClient = object : WebViewClient() {
        override fun onPageFinished(webView: WebView, url: String) {
            super.onPageFinished(webView, url)
        }
    }

    OriginalEl autor iHad 169

  6. -2

    Un poco tarde pero espero que esto ayude.

    Después de su página termine de cargarse ejecutar esto:-

     yourWebView.loadUrl("javascript:(function() { document.getElementsByClassName('ytp-large-play-button ytp-button')[0].click(); })()");

    OriginalEl autor Aditya Narvekar

Dejar respuesta

Please enter your comment!
Please enter your name here