webview加载腾讯视频功能的实现

来源:互联网 发布:以太网无法连接到网络 编辑:程序博客网 时间:2024/05/16 09:07

楼主之前转行做java web开发的工作,由于是什么都不会开始,加之工作量比较大,所以一直很忙,没有时间写博客。换了一份工作,继续做着android开发,在工作中,有webview加载腾讯视频的功能,在此做一个记录,希望对实现腾讯视频播放功能的同学有所帮助。

首先是加载网络的权限。

<uses-permission android:name="android.permission.INTERNET"></uses-permission>

其次是对android3.0(api11)之后要进行硬件加速,硬件加速可以在manifest文件中的Application标签下设置,同样也可以在实现webview播放的Activity中设置,楼主选择的实在Activity中设置。

<activity    android:name=".PlayActivity"    android:hardwareAccelerated="true"/>

接着是布局,需要注意的是在webview控件中要设置layerType属性为hardware。

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:background="#FFFFFF"    android:orientation="vertical" >    <WebView        android:id="@+id/videoWebView"        android:layout_width="match_parent"        android:layout_height="match_parent"        android:layerType="hardware"        android:focusable="true"        android:focusableInTouchMode="true" /></LinearLayout>

下面是webview所在Activity代码,注释比较详细。

package co.webviewdemo;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.KeyEvent;import android.view.WindowManager;import android.webkit.WebChromeClient;import android.webkit.WebSettings;import android.webkit.WebView;import android.webkit.WebViewClient;import butterknife.Bind;import butterknife.ButterKnife;/** * Created by FengJD on 2017/6/9. */public class PlayActivity extends AppCompatActivity {    @Bind(R.id.videoWebView)    WebView videoWebView;    //vid为腾讯视频的id    String html = "http://v.qq.com/iframe/player.html?vid=s001529w0dr&tiny=0&auto=0";    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_play);        ButterKnife.bind(this);        getWindow().addFlags(WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);        WebSettings setting = videoWebView.getSettings();        setting.setJavaScriptEnabled(true);        setting.setDomStorageEnabled(true);        setting.setPluginState(WebSettings.PluginState.ON);        setting.setAllowFileAccess(true);        setting.setLoadWithOverviewMode(true);        setting.setUseWideViewPort(true);        setting.setDatabaseEnabled(true);        setting.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);        setting.setDefaultTextEncodingName("UTF-8");        videoWebView.setWebChromeClient(new WebChromeClient());        videoWebView.setWebViewClient(new MyWebViewClient());        videoWebView.loadUrl(html);    }    @Override    protected void onPause () {        //解决推出次Activity后声音还在继续的问题        videoWebView.reload ();        super.onPause ();    }    @Override    public boolean onKeyDown(int keyCode, KeyEvent event) {        if (keyCode == KeyEvent.KEYCODE_BACK) {            finish();            return false;        }        return super.onKeyDown(keyCode, event);    }    public class MyWebViewClient extends WebViewClient {        @Override        public boolean shouldOverrideUrlLoading(WebView view, String url) {            // TODO Auto-generated method stub            view.loadUrl(html);            return true;        }    }}

好了,所有的功能都在这儿,有什么疑问,可以留言,楼主尽力解答!

源码下载

原创粉丝点击