android 4.0以上WebView不能全屏播放视频的解决办法

  次阅读 作者:智能小宝 来源:互联网 2015-10-02 21:24 我要评论(0)

上次鄙人做了一个简单的利用webView实现的一个浏览器!其中遇到了两个问题,一个是将浏览器中需要下载的内容托管到系统默认的下载程序进行下 载,这个比较简单就不在这里讨论了;另一个问题就是我们的Android设备版本是4.0.3,不能像Android2.3那样支持全屏播放视频,这个问 题比较纠结,但是经过不断的摸索,终于解决了这个问题。在这里和大家分享一下解决方法:

1、首先定义一个VideoEnabledWebView继承自WebView,复写其中的 loadData,loadDataWithBaseURL,loadUrl方法,道理很简单就是在加载url或者js的时候初始化一些内容。见代码

package com.danielme.android.webviewdemo;

import java.util.Map;

import android.annotation.SuppressLint;

import android.content.Context;

import android.os.Handler;

import android.os.Looper;

import android.util.AttributeSet;

import android.webkit.WebChromeClient;

import android.webkit.WebView;

public class VideoEnabledWebView extends WebView

{

public interface ToggledFullscreenCallback

{

public void toggledFullscreen(boolean fullscreen);

}

private VideoEnabledWebChromeClient videoEnabledWebChromeClient;

private boolean addedJavascriptInterface;

public VideoEnabledWebView(Context context)

{

super(context);

addedJavascriptInterface = false;

}

public VideoEnabledWebView(Context context, AttributeSet attrs)

{

super(context, attrs);

addedJavascriptInterface = false;

}

public VideoEnabledWebView(Context context, AttributeSet attrs, int defStyle)

{

super(context, attrs, defStyle);

addedJavascriptInterface = false;

}

/**

* Pass only a VideoEnabledWebChromeClient instance.

*/

@Override

@SuppressLint ("SetJavaScriptEnabled")

public void setWebChromeClient(WebChromeClient client)

{

getSettings().setJavaScriptEnabled(true);

if (client instanceof VideoEnabledWebChromeClient)

{

this.videoEnabledWebChromeClient = (VideoEnabledWebChromeClient) client;

}

super.setWebChromeClient(client);

}

@Override

public void loadData(String data, String mimeType, String encoding)

{

addJavascriptInterface();

super.loadData(data, mimeType, encoding);

}

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 英国研发“杀生”机器人 通过生命体获取能量

    英国研发“杀生”机器人 通过生命体获取能量

  • 韩春雨称已能重复实验结果 近期将有消息公布

    韩春雨称已能重复实验结果 近期将有消息公布

  • 未来两年人工智能要怎么走?看这篇就够了

    未来两年人工智能要怎么走?看这篇就够了

  • 无人驾驶汽车如何改变城市生活?听听他们怎么说

    无人驾驶汽车如何改变城市生活?听听他们怎么说

网友点评网友点评
阅读推荐阅读推荐

据国外媒体报道,在过去两年内,聊天机器人(chatbot)、人工智能以及机器学习的研发和采用取得了巨大进展。许多初创公司正利用人工智能和...

霍金 视觉中国 图 英国著名物理学家霍金(Stephen Hawking)再次就人工智能(AI)发声,他认为:对于人类来说,强大AI的出现可能是最美妙的...

文|郑娟娟 今年,人工智能(AI) 60岁了。在AI60岁的时候,笔者想要介绍一下AI100,一个刚刚2岁的研究项目,但它的预设寿命是100年,甚至更长...

AlphaGo与李世石的人机大战,为大众迅速普及了人工智能的概念。 但对谷歌而言,除了下围棋,现在的人工智能进展到哪一步了?未来,人工智能...