android webview视频播放

小分队做项目的时候,视频用h5来播放。第一个反应是webview来实现,小分队也是行动派,马上用android 自带的webview。balabalabala...

跳坑了~。oppo android4.4.4能正常播放,在小米6.0的时候就出现各种各样的问题。

虽然webview可能没什么用,但是还是写出来,让大家熟悉一下,代码如下

xml:

  <WebView
        android:id="@+id/webview"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
java:

public class MainActivity extends Activity {

    private WebView contentWebView = null;
    private String url = "http://M00/00/22/wKgKG1hgqseADhUnAAyNW2v8zzY245.mp4";
    private Handler mHandler = new Handler();

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        contentWebView = (WebView) findViewById(R.id.webview);
        // 启用javascript
        contentWebView.getSettings().setJavaScriptEnabled(true);

        // 从assets目录下面的加载html


        Button button = (Button) findViewById(R.id.button);
        button.setOnClickListener(btnClickListener);
		contentWebView.addJavascriptInterface(new DemoJavaScriptInterface(), "video_h5");
        contentWebView.loadUrl("file:///android_asset/video_h5.html");
    }

    View.OnClickListener btnClickListener = new View.OnClickListener() {
        public void onClick(View v) {
            //传递参数调用
            contentWebView.loadUrl("javascript:onPageFinished('" + url + "')");
        }
    };

    final class DemoJavaScriptInterface {

        DemoJavaScriptInterface() {
        }

        /**
         * This is not called on the UI thread. Post a runnable to invoke
         * loadUrl on the UI thread.
         */
        @JavascriptInterface
        public void clickOnAndroid() {
            mHandler.post(new Runnable() {
                public void run() {
                    contentWebView.loadUrl("javascript:onPageFinished('" + url + "')");
                }
            });

        }
    }
}
video_h5.htm:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8"/>
    <title></title>
</head>
<style type="text/css">
            *{
            margin: 0;
            padding: 0;
            font-family: sans-serif
            }
            body{
                margin:0 auto;
            }
            #video{
            width: 100%;
            height: 100%;
            }
            #video #contentVideo{
                margin: 0 auto;
                width: 100%;
                height: 100%;
            }


</style>
<script>

        function onPageFinished(videoUrl) {
            var video = document.getElementById("contentVideo");
            video.src = videoUrl;
            video.play();
           }



</script>

<body>
<div id="video">
    <video id="contentVideo" autoplay="autoplay" controls="controls">
    </video>

</div>


</body>
</html>
简单的java与js交互。

下面开始众筹戏了;

小分队在网上看见一些评论说android webview的一些不好的地方,就直接找到一个第三方框架腾讯 http://x5http://x5.tencent.com/index

这个框架抽出了几个api,实现特别简单,这里就直接贴代码了:

java:

if (TbsVideo.canUseTbsPlayer(TbsActivity.this)) {
    TbsVideo.openVideo(TbsActivity.this, data.get(position));
}
AndroidManifest:

<activity
    android:name="com.tencent.smtt.sdk.VideoActivity"
    android:configChanges="orientation|screenSize|keyboardHidden"
    android:exported="false"
    android:launchMode="singleTask"
    android:alwaysRetainTaskState="true">
    <intent-filter>
        <action android:name="com.tencent.smtt.tbs.video.PLAY" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>
打完收工,腾讯x5不止是视频,还有其他的,小分队只需要简单的视频播放而已,所有这里介绍比较少,具体的,你们可以直接进上面的地址。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值