Android webview视频自动播放成功,但同样的apk在Android电视迷你电脑上失败? [英] Android webview video autoplay success, but same apk fails on android Tv mini pc?

查看:486
本文介绍了Android webview视频自动播放成功,但同样的apk在Android电视迷你电脑上失败?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我设法让我的视频自动播放在我的webview.apk中,在我的手机上测试(4.1.2)并且它可以工作,而在我的android mini pc(4.2)上必须点击才能开始播放... :(

I have managed to get my video autoplay inside my webview.apk, tested on my phone (4.1.2) and it works, while on my android mini pc (4.2) has to be clicked to start the playback...:(

WebChromeClient可能是什么原因?如果它与chrome有共同之处,也无法自动播放,而股票网页浏览器播放效果很好?

Could WebChromeClient may be the reason? If it has something in common with chromium, which fails to autoplay as well, while the stock web browser plays nicely??

我用来获取自动播放功能的javascript如下:

The javascript I use to get the autoplay working is the following:

<html>
  <head>

      <script>

function callback () {
    document.querySelector('video').play();
        }

       window.addEventListener("load", callback, false);


    </script>

  </head>



<body>
  <div id="video_post1" style="margin: -454px 0px 0px -3px;position: absolute;">
<video controls autoplay with="600" height="400">

  <source src="http://www.edmondvarga.com/demo/videos/trx.mp4" type="video/mp4">


</video>
  </div>

    </body>
    </html>

也许我会用另一种语法来播放它(比如:文件就绪)?

Maybe I would use another syntax to play it (like: document ready)?

Eclipse代码,仅用于演示:

Eclipse code, just for demonstration:

package tscolari.mobile_sample;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.webkit.WebChromeClient;

import android.media.MediaPlayer;


public class InfoSpotActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);


        setContentView(R.layout.main);

        WebView mainWebView = (WebView) findViewById(R.id.mainWebView);

        WebSettings webSettings = mainWebView.getSettings();
        webSettings.setJavaScriptEnabled(true);

        mainWebView.setWebChromeClient(new WebChromeClient());

        mainWebView.setWebViewClient(new MyCustomWebViewClient());
        mainWebView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);




        mainWebView.loadUrl("http://server.info-spot.net");
    }


    private class MyCustomWebViewClient extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }
    }
}


推荐答案

我意识到这是一个老问题,但这个答案可能会帮助一些人:

Android(和iOS都禁用) Chrome或本机浏览器中的HTML5 视频节点中的 autoplay 标记。播放视频需要用户交互(onClick或onMouseOver等)。但是,如有必要,可以在自己的WebView中自动播放视频。

Android (and iOS both) disabled the autoplaytag in HTML5 video nodes in the Chrome or native browser. Playing a video requires user interaction (onClick or onMouseOver or something). However, one can autoplay videos in one's own WebView if necessary.

要在Android Webview中自动播放视频,请发布Android 4.4:

To autoplay videos in an Android Webview, post Android 4.4:

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

这篇关于Android webview视频自动播放成功,但同样的apk在Android电视迷你电脑上失败?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆