AI prompts
base on 电视浏览器,一款简易电视视频收看软件,用于方便的在机顶盒上收看网页视频 <p align="center"> <img src="https://github.com/Eanya-Tonic/CCTV_Viewer/blob/master/app/src/main/res/drawable/icon.png" style="width:200px;" /> </p> <h1 align="center">电视浏览器</h1> <p align="center">一个电视机顶盒及Android TV收看网页视频的浏览器 </p>
## 下载安装包
从Github Release下载:https://github.com/Eanya-Tonic/CCTV_Viewer/releases/latest
<br>
从百度网盘下载:https://pan.baidu.com/s/1e5wMCorJIp9oi5yN8mJ1KA?pwd=qozp 提取码:qozp
<br>
从 VoidTech 实验室下载(X5 内核 1.7.4 测试版):https://void-tech.cn/wp-content/uploads/2024/10/CCTV_Viewer_1.7.4-X5Beta.zip
## 演示视频
**B站:**
[央视浏览器v1.2更新——支持遥控器的电视直播观看软件](https://www.bilibili.com/video/BV1Gc41187D6)
[央视浏览器——一款支持遥控器的便捷电视直播观看软件](https://www.bilibili.com/video/BV1Cg4y1r7Hv)
## 使用方法
**电视盒子:**
![2024-10-03_23-09-27](https://github.com/user-attachments/assets/9dbda531-1976-438a-b293-fd5b5fa002e6#pic_center)
<div align=center><p>频道切换列表界面</p></div>
![2024-10-03_23-09-43](https://github.com/user-attachments/assets/0771c85a-9957-4554-bb98-ebab6f49dba8#pic_center)
<div align=center><p>菜单键功能菜单</p></div>
![2024-10-03_23-09-51](https://github.com/user-attachments/assets/bca3b30b-7ca4-4fa3-a975-05230011ff2f#pic_center)
![2024-10-03_23-09-59](https://github.com/user-attachments/assets/a9f3b5a8-5546-4e95-9eef-ba0e389fd22d#pic_center)
<div align=center><p>设置界面</p></div>
使用上下键切换频道,使用确认键显示当前频道和节目信息、并打开频道切换列表,单击菜单键打开功能菜单,输入数字键换到指定台,双击返回键退出程序。
**其他设备:**
使用键盘方向键上下控制切换频道,使用Enter键显示当前频道和节目信息、并打开频道切换列表,单击键盘M键打开功能菜单,单击键盘B键触发返回,输入数字键换到指定台。
## 目前可看网页
1 CCTV-1 综合
2 CCTV-2 财经
3 CCTV-3 综艺
4 CCTV-4 中文国际(亚)
5 CCTV-5 体育
6 CCTV-6 电影
7 CCTV-7 国防军事
8 CCTV-8 电视剧
9 CCTV-9 纪录
10 CCTV-10 科教
11 CCTV-11 戏曲
12 CCTV-12 社会与法
13 CCTV-13 新闻
14 CCTV-14 少儿
15 CCTV-15 音乐
16 CCTV-16 奥林匹克
17 CCTV-17 农业农村
18 CCTV-5+ 体育赛事
19 CCTV-4 中文国际(欧)
20 CCTV-4 中文国际(美)
21 北京卫视
22 江苏卫视
23 东方卫视
24 浙江卫视
25 湖南卫视
26 湖北卫视
27 广东卫视
28 广西卫视
29 黑龙江卫视
30 海南卫视
31 重庆卫视
32 深圳卫视
33 四川卫视
34 河南卫视
35 福建东南卫视
36 贵州卫视
37 江西卫视
38 辽宁卫视
39 安徽卫视
40 河北卫视
41 山东卫视
## 更新日志
**v1.7.3 更新日志(2024.10.09)**
1.【紧急】修复安卓5以下设备设置闪退导致无法安装X5内核
2.在安卓4.4.2测试X5内核可正常安装启动和播放网页视频
**v1.7.2 更新日志(2024.10.06)**
1.尝试修复本地X5内核安装问题,修改内核包存储目录
2.修改设置中启用X5按钮的用户交互,提升使用体验
3.增加一个X5安装界面,尝试安装X5内核直至安装完成(可能导致app无限重启,如出现无限app重启,清除全部数据或卸载重装app即可恢复系统WebView)
4.默认关闭双缓冲加载
5.降低安装限制到SDK 17
6.64位设备需要46XXX版本的X5内核,但32位设备需要45XXX版本的内核,考虑到大多数需要X5内核的设备都是32位机器,故在apk集成32位X5内核,并在64位设备暂时禁用X5安装(经测试,在64位设备安装32位X5内核会导致闪退和无限重启)
**v1.7.1 更新日志(2024.10.03)**
1.修复应用程序版本号未更新
2.允许用户设置是否按上下键时直接换台,而不是弹出换台抽屉
3.允许用户设置是否在换台抽屉中按返回键时直接关闭抽屉,而不是返回上一级
4.设置界面布局优化
5.尝试修复低网速环境下页面无法正常加载问题
**v1.7 更新日志(2024.09.22)**
_体验调整_
1.精简Android Studio创建Android TV项目时产生的无用模板文件
2.增加一个设置二级界面,增加可自定义换台抽屉字体大小、可定义是否开启双缓冲、可自主决定是否启用X5(仅可用一次)三个选项
3.换台抽屉布局文件调整,提供较小、适中(默认)、偏大、特大四种字体大小可自定义
4.加入双标签页缓冲加载,使用两个WebView分别加载,换台时继续收看上一个频道等待加载;性能较弱设备可在设置中关闭该功能,提升使用体验
5.加入系统webview开关,可自主决定是否启用X5,如系统Webview可以播放则无需关闭该开关(关闭后无法重新开启,关闭后重启后即进入尝试加载X5内核模式)
6.上下键打开换台抽屉,再按确认后换台,避免误触
7.优化换台体验,修改js代码,提高换台速度
8优化央视网换台速度,精简网页元素
9.尝试启用X5无图模式,提高网页加载速度
10.尝试启用硬件加速
11.底部菜单最后一个按钮由“退出程序”修改为“打开设置”
12.取消自动开始播放定时任务,降低程序运行资源占用
_修复Bug_
1.修复x5内核下异常暂停
2.修复WebView抢占焦点
3.修正双击返回逻辑错误
4.修复后台错误驻留
5.启动白屏颜色降低
6.精简换台抽屉布局文件,改为程序生成内容,边框设为自适应
**建议卸载旧版后重新安装,避免出现无法安装、闪退等可能的错误;安卓版本较低的机器,如果已经能够正常使用旧版本,不建议卸载旧版更新,避免新版本无法运行,请以稳定使用优先**
**v1.6.1 更新日志 (2024.06.17)**
1.修复闪退的问题
**v1.6.1 更新日志 (2024.06.06)**
1.修复无限全屏的问题
**v1.6 更新日志 (2024.06.06)**
1.【严重】无法打开地方频道
2.修复无法在程序内修改音量的问题
3.不再自动切换清晰度
4.启用网页缓存(仅系统 WebView)
5.显示系统 WebView 版本号(安卓 7及以上版本才能显示)
6.支持在 GitHub Action 构建,方便调试发版,或者魔改
7.加载网页时禁用自动加载图片,减少卡顿(仅系统 WebView)
**v1.5 更新日志(2024.01.27)**
1.更新菜单键事件逻辑,加入一个底部菜单,并取消原本复杂的双击、单击等机制,使程序更加易用。
2.修改换台菜单逻辑,将原本的弹出界面调整为二级抽屉式菜单,同时改为按确认键触发,更加符合用户的使用习惯;在打开换台界面时,自动切换到目前正在播放的频道。
3.增加一个提示,在换台时会提示目前调用的是系统Webview内核还是腾讯X5内核。
4.修复偶发性的卫视频道播放静音问题。
5.额外更新一个调用系统WebView的版本
**v1.4 更新日志(2024.01.21)**
1.增加央视频的北京卫视、江苏卫视等21个地方卫视频道。
2.尝试修复视频播放暂停的问题,暂时恢复确认键的暂停功能,但是暂停后会自动重新开始播放,仅用于增强兼容性。
3.增加双击确认键可以调整全屏/退出全屏的功能。
4.遥控器左右键可以缩放网页,增强应用兼容性。
5.修改图标、应用名称、增加leanback设置,在原生Android TV启动器上也可以正常显示图标。
6.增加频道选择界面的台号显示,方便数字键换台使用。
7.最低安装限制调整为安卓4.4,API 19。
8.本次更新中,出现了偶发性的卫视频道缩放不正常问题,经测试退出应用再重新打开后可以解决;由于较难复现,我目前不知道问题产生的原因。
**v1.3 更新日志(2024.01.20)**
1.调用本地x5内核,将x5内核集成到安装包中,提高x5内核调用的成功率。
2.自动播放视频,并且禁用确认键暂停功能。
3.修复清晰度选择导致的无法全屏和播放的问题,解决CCTV-6、CCTV-3两个频道由于没有超清清晰度无法选择导致不能全屏和正常播放的问题。
4.增加频道选择菜单,按菜单键激活后可直接选择需要切换的频道。
5.修改操作逻辑,按确定键显示当前频道信息、单击菜单键显示频道列表、双击菜单键刷新当前网页。
**v1.2 更新日志(2024.01.05)**
1.在换台时显示一个“正在切换频道”覆盖层,优化使用体验
2.增加换台后当前频道和当前频道节目预告提示
3.修改按键逻辑,单击菜单键改为显示当前频道和节目信息,长按菜单键改为刷新当前页面
4.改为使用腾讯x5内核,提高程序兼容性
> 下载并安装本软件,即代表您已阅读并同意[腾讯浏览服务X5网页引擎隐私保护规则](https://rule.tencent.com/rule/preview/1c4e2b4b-d0f6-4a75-a5c6-1cfce00a390d)
**v1.1 更新日志(2024.01.04)**
1.优化返回退出逻辑,需要按两次返回键才会退出,避免误触
2.增加数字键换台功能,用户可以通过遥控器上的数字键直接输入台号换台。备注:18号 CCTV-5+ 体育赛事、19号 CCTV-4 中文国际(欧)、20号 CCTV-4 中文国际(美)
", Assign "at most 3 tags" to the expected json: {"id":"6743","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"