Android Webview加载网页视频播放遇到的坑
程序员文章站
2022-05-23 14:19:23
...
Android webview中的坑我想不用我说大家应该都感受到了,各种问题,先有一个需求需要加载html格式的网络视频。于是上github找遍了各种开源播放器。均不能播放html格式的视频,但是我看手机浏览器就可以打开,于是我就搜android浏览器。结果还真让我找到了一个开源的项目。
https://gitee.com/xumingwang/youkes_browser
感谢作者的无私奉献精神,不然我都不知道要做到什么时候。
这个是一个开源的浏览器的项目,里面功能比较全,不过ui的话就比较low了。不过我只需要看他的播放功能,还是很强大的。说了这么多,不上张图总以为在吹牛逼。
不会上传视频,这样将就把。
于是欢欢喜喜的应用到项目中,以为可以下班打撸了。没想到卡的一b。完全没法用。这是为什么呢,明明demo跑得好好的。这就让我很不爽了。 直接单独开一个进程 去使用webview 并且当这个 进程结束时,请手动调用System.exit(0)。
在xml文件中配置
android:process=":remote"
滴滴,打卡下班。
正准备走的时候居然又遇到一个蛋疼的问题。网页重定向退不出来了。好吧,继续解决。
我的思路是通过一个标示记录第一次登陆的网页,然后在返回的时候判断是不是第一次记录的,如果不是就goBack。
private String isFistUrl;//第一次加载url
private boolean isFirst = false;
mWebView.setWebViewClient(new WebViewClient() {
//监听到第一次进去的地址
@Override
public boolean shouldOverrideUrlLoading(final WebView view, String url) {
flag = view.getUrl();
if (!isFirst) {
isFistUrl = url;
isFirst = true;
}
LogUtils.d("shouldOverrideUrlLoading=====", url);
view.loadUrl(url);
return true;
}
//所有资源加载都会走的方法
@Override
public void onLoadResource(final WebView view, String url) {
super.onLoadResource(view, url);
LogUtils.d("flag=====", flag);
}
//退出时的时间
private long mExitTime;
public void onPageStarted(final WebView view, String url, Bitmap favicon) {
}
@Override
public void onPageFinished(WebView view, String url) {
}
});
}
// 设置回退
@Override
public void onBackPressed() {
if (mWebView.canGoBack() && !isFistUrl.equals(mWebView.getUrl())) {
mWebView.goBack();
} else {
finish();
}
}
解决视频播放退出还在播放的问题
@Override
public void onResume() {
System.out.println("webView onResume");
flag = "";
try {
if (mWebView != null) {
mWebView.getClass().getMethod("onResume").invoke(mWebView, (Object[]) null);
mWebView.onResume();
// mWebView.resumeTimers();
}
} catch (Exception e) {
e.printStackTrace();
}
super.onResume();
}
@Override
public void onPause() {
System.out.println("webView onPause");
try {
if (mWebView != null) {
mWebView.getClass().getMethod("onPause").invoke(mWebView, (Object[]) null);
mWebView.onPause();
// mWebView.pauseTimers();
}
} catch (Exception e) {
e.printStackTrace();
}
super.onPause();
}
还有一些坑请慢慢来爬。
http://blog.csdn.net/u013598111/article/details/50564705
人生苦短,及时行乐,祝大家国庆节快乐!
推荐阅读
-
Android如何让WebView中的HTML5页面实现视频全屏播放
-
解决Android WebView拦截url,视频播放加载失败的问题
-
Android使用WebView实现全屏切换播放网页视频功能
-
Android开发如何加载WebView中的H5页面并全屏视频播放
-
Android如何让WebView中的HTML5页面实现视频全屏播放
-
Android中使用WebView实现全屏切换播放网页视频
-
RTSP播放器网页web无插件直播流媒体音视频播放器EasyPlayer-RTSP-Android解码获取视频帧的方法
-
Android Webview加载各种网络视频 播放暂停播放完成监听事件
-
Android WebView 加载网页的时候 滑动的时候会出现白屏
-
解决Android WebView拦截url,视频播放加载失败的问题