Closed zbby1987 closed 1 month ago
也可以通过类似adblock/油猴脚本的方法,直接屏蔽掉无关内容的加载 把所有与视频无关的内容,都当广告直接过滤掉,不加载就行了。。。
https://github.com/matrix3d/CCTV_Viewer/releases/tag/tagv23 此版本已删除图片加载
WebViewClient
类来控制加载。WebViewClient#shouldInterceptRequest()
方法来拦截加载请求。WebResourceResponse
对象来阻止加载。WebResourceResponse
对象中设置 data
属性为空,以防止加载图像。@Override
public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {
String url = request.getUrl().toString();
if (url.endsWith(".png") || url.endsWith(".jpg") || url.endsWith(".jpeg")) {
return new WebResourceResponse("image/gif", "UTF-8", new ByteArrayInputStream(new byte[0]));
}
return super.shouldInterceptRequest(view, request);
}
WebView#getSettings()
方法来设置 blockNetworkImage
属性为 true
,以阻止加载所有图像。WebView webView = (WebView) findViewById(R.id.webView);
WebSettings webSettings = webView.getSettings();
webSettings.setBlockNetworkImage(true);
https://github.com/matrix3d/CCTV_Viewer/releases/tag/tagv23 此版本已删除图片加载
是不是可以考虑,把播放器和视频外的所有内容都给不加载? 这样速度肯定更快
经在手机上测试, webview屏蔽图片的方法,确实速度快了! 效果视频:https://share.feijipan.com/s/BlUuxIDi @Eanya-Tonic 能否给x5也加一个!!!
在手机上长按屏幕,还会出现选台菜单。这样手机也能测了! 同时播放器底部控制栏里的全屏切换的按钮也消失不见了,手机因为基本秒变全屏,又没退出全屏的按钮显示,手机上就无法看到屏蔽图片后的网页长什么样子。(后续在电视上看到了,就是不知怎么退出全屏) . 另外,主版本加了体验优化的变动,希望分支版也能尽快加上。 比如 ★能看到运行在哪个内核及其对应的版本号上! ★强制只使用x5且支持安卓4的版本, ★多行多列的选台列表 或 二级选台列表 ★视频清晰度选择 . 明显的错误: 第1个中央一台明明是央视频,不是央视网! 第2个中央一台才是央视网! (话说顶部央视频和央视网两个中央1还是好评的,毕竟央视网的中央一老是因为版权问题停播) . Bug: a.如果已经选了央视频的某个台,就无法再切换到央视频的其他台! b.在电视上,选台弹窗的弹出响应时间太长,按完确定键要很久才会弹出来!这是老毛病了! . 体验优化项: 经过验证对比,还是先让播放起来 ,再进行视频全屏更好。 这样给人的感觉也更流畅! 也不会一直在全屏播放器界面显示一个暂停按钮的无图叉号! 刚开始在手机上测,基本都秒开,还没感觉。 电视上测时,切台速度没手机那么快,播放器先全屏再播放的话,会给人感觉慢了些! . 但这样全屏后再播放,可能一步完成了再操作下一步的方式,对低性能设备更友好些!不容易卡死
https://github.com/matrix3d/CCTV_Viewer/releases/tag/tagv23 此版本已删除图片加载
这个版本里的第一个频道:央视频的中央1,清晰度比较差, 是因为用的960x540p来保证开机后的绝对流畅么? 但右下角显示的是蓝光1080p! 其实可以考虑在设置弹窗里里搞个1280x720p和1920x1080p的选择吧?
https://github.com/matrix3d/CCTV_Viewer/releases/tag/tagv23 此版本已删除图片加载
- 使用 Webview 的
WebViewClient
类来控制加载。- 重写
WebViewClient#shouldInterceptRequest()
方法来拦截加载请求。- 检查请求的 URL,如果是要加载图像,则返回
WebResourceResponse
对象来阻止加载。- 在
WebResourceResponse
对象中设置data
属性为空,以防止加载图像。@Override public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) { String url = request.getUrl().toString(); if (url.endsWith(".png") || url.endsWith(".jpg") || url.endsWith(".jpeg")) { return new WebResourceResponse("image/gif", "UTF-8", new ByteArrayInputStream(new byte[0])); } return super.shouldInterceptRequest(view, request); }
- 也可以使用
WebView#getSettings()
方法来设置blockNetworkImage
属性为true
,以阻止加载所有图像。WebView webView = (WebView) findViewById(R.id.webView); WebSettings webSettings = webView.getSettings(); webSettings.setBlockNetworkImage(true);
@matrix3d @Eanya-Tonic 我突然反应过来,你这就是浏览器里都能开启的无图模式啊。。。。 x5和webview肯定都是现成支持这个的! 在这个基础上,是不是还可以再屏蔽点东西去加速!?!?
目前感知到的是网页加载速度慢,而不是视频加载响应速度慢。 这应该是网站本身杂七杂八的图片/超链内容多有关。 删了顶部导航栏,底部图片链接等杂七杂八的内容,不去加载应该就快的多了。 . 把这几个台的网页内容全下载到本地, 本地网页html文件改成只加载出网页里的播放器,其余顶部和底部各种导航/图片/超链都从本地页面代码里删了。 把这些本地文件保存在apk里,每次都只访问apk的本地网页,这个本地网页只和总站传输网页播放器&视频数据。 . 不知道这样,能不能通过央视网的加密加扰,实现正常播放。。。。