IDEA编译安卓源码TVBox(2)

一、项目结构:主要app和player

app结构

二、增加遥控器按键选台

修改LivePlayActivity.java

1、声明变量

    public String channelId = "";public Timer timer = new Timer();public Toast mToast;

2、定义方法

    private void  mToastShow(String s){mToast = Toast.makeText(LivePlayActivity.this, "", Toast.LENGTH_SHORT );mToast.setText(s);LinearLayout layout = (LinearLayout) mToast.getView();TextView tv = (TextView) layout.getChildAt(0);tv.setTextSize(86);mToast.setGravity(Gravity.CENTER, 0, 0);mToast.show();}private Handler handler = new Handler(){@Overridepublic void handleMessage(Message msg){switch (msg.what) {case 1:mToastShow(String.valueOf(msg.obj));break;case 2:playChannel(0,Integer.parseInt(String.valueOf(msg.obj))-1,false);break;}super.handleMessage(msg);}};

3、修改方法public boolean dispatchKeyEvent(KeyEvent event)

switch (keyCode) {}中增加如下代码:

                    default:if(keyCode>=KeyEvent.KEYCODE_0 && keyCode<=KeyEvent.KEYCODE_9){if(mToast != null){mToast.cancel();}if(channelId=="") {channelId +=keyCode-7;mToastShow(channelId);timer.schedule(new TimerTask() {@Overridepublic void run() {Message message = new Message();message.what = 2;message.obj = channelId;handler.sendMessage(message);channelId ="";}}, 2000);}else {channelId +=keyCode-7;mToastShow(channelId);}}break;

判断按键是0-9,

mToast.cancel();不显示

mToastShow(channelId);显示channelId

channelId为按键选择的频道号

timer计时器:2秒内的按键为选台数字,

4、比如遥控器连续按1和2,channelId为“12”,mToastShow显示数字12,timer.schedule以handler方式发送消息,handler.sendMessage(message)发送后,handleMessage方法调用playChannel()播放指定频道。

三、playChannel()方法参数

playChannel(0,Integer.parseInt(String.valueOf(msg.obj))-1,false);

第1个参数:频道分组序号,从0开始

第2个参数:频道在分组中的序号,从0开始

第3个参数:改变播放源,默认false

三、播放源json格式

lives为直播源,group为分组,channels为频道列表。全部为json数组型

{

"lives": [{"group": "分组1","channels": [

{"name":"CCTV1","urls":["url1","url2"]},

{"name":"CCTV2","urls":["url3","url4"]},

...

]},{"group": "分组2","channels": [...]}],

spider蜘蛛

 

sites站点

"sites":[
{ "key": "aa", "name": "bb", "type": 3, "api": "https://jihulab.com/yydfys/yydf/-/raw/main/yydf/lib/drpy2.min.js", "ext": "https://jihulab.com/yydfys/yydf/-/raw/main/yydf/lib/douban.js" }, 

...

]

ijk解码 ,建议app设置中,选用硬解码

    "ijk": [
   {"group":"软解码","options":[{"category":4,"name":"opensles","value":"0"},{"category":4,"name":"overlay-format","value":"842225234"},{"category":4,"name":"framedrop","value":"1"},{"category":4,"name":"soundtouch","value":"1"},{"category":4,"name":"start-on-prepared","value":"1"},{"category":1,"name":"http-detect-rangeupport","value":"0"},{"category":1,"name":"fflags","value":"fastseek"},{"category":2,"name":"skip_loop_filter","value":"48"},{"category":4,"name":"reconnect","value":"1"},{"category":4,"name":"enable-accurateeek","value":"0"},{"category":4,"name":"mediacodec","value":"0"},{"category":4,"name":"mediacodec-auto-rotate","value":"0"},{"category":4,"name":"mediacodec-handle-resolution-change","value":"0"},{"category":4,"name":"mediacodec-hevc","value":"0"},{"category":1,"name":"dns_cache_timeout","value":"600000000"}]},
   {"group":"硬解码","options":[{"category":4,"name":"opensles","value":"0"},{"category":4,"name":"overlay-format","value":"842225234"},{"category":4,"name":"framedrop","value":"1"},{"category":4,"name":"soundtouch","value":"1"},{"category":4,"name":"start-on-prepared","value":"1"},{"category":1,"name":"http-detect-rangeupport","value":"0"},{"category":1,"name":"fflags","value":"fastseek"},{"category":2,"name":"skip_loop_filter","value":"48"},{"category":4,"name":"reconnect","value":"1"},{"category":4,"name":"enable-accurateeek","value":"0"},{"category":4,"name":"mediacodec","value":"1"},{"category":4,"name":"mediacodec-auto-rotate","value":"1"},{"category":4,"name":"mediacodec-handle-resolution-change","value":"1"},{"category":4,"name":"mediacodec-hevc","value":"1"},{"category":1,"name":"dns_cache_timeout","value":"600000000"}]}],

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/541819.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Soft Robotics 变结构手掌和变刚度手指的仿人软体手的人机交互操作-武科大ESIR课题组师兄成果

一、引言 在当今的机器人技术领域&#xff0c;人类对机器人的需求日益增长&#xff0c;涉及到工业生产、医疗护理、服务业等各个领域。然而&#xff0c;由于任务的多样性和复杂性&#xff0c;单独依靠自主机器人操作往往难以满足实际需求。为了解决这一问题&#xff0c;人机协作…

微信小程序-webview分享

项目背景 最近有个讨论区项目需要补充分享功能&#xff0c;希望可以支持在微信小程序进行分享&#xff0c;讨论区是基于react的h5项目&#xff0c;在小程序中是使用we-view进行承载的 可行性 目标是在打开web-view的页面进行分享&#xff0c;那就需要涉及h5和小程序的通讯问…

如何使用ROS和easymqos快速搭建一辆语音控制导航的机器人

之前做的机器人小车基本都属于电脑或手机控制操作。目前&#xff0c;使用语音控制机器人小车运动&#xff0c;让机器人导航去指定地点&#xff0c;已经成为热门&#xff0c;并且语音识别技术已经有落地方案&#xff0c;可满足生活中的基本需要。有些语音芯片通过高算力处理器运…

【C语言】—— 指针二 : 初识指针(下)

【C语言】——函数栈帧 一、 c o n s t const const 修饰指针1.1、 c o n s t const const 修饰变量1.2、 c o n s t const const 修饰指针 二、野指针2.1野指针的成因&#xff08;1&#xff09;指针未初始化&#xff08;2&#xff09;指针越界访问&#xff08;3&#xff09;指…

Spring Web MVC 入门使用

1. 什么是Spring Web MVC Spring Web MVC是基于Servlet API 构建的原始Web框架&#xff0c;从一开始就包含在Spring框架中。 Servlet 是一套Java Web 开发的规范&#xff0c;或者说是一套Java Web 开发的技术标准。只有规范并不能做任何事情&#xff0c;必须要有人去实现它&a…

DM数据库安装及使用(Windows、Linux、docker)

Windows 先解压安装包 点击setup安装 下一步 勾选接受然后下一步 下一步 选择典型安装下一步 下一步 搜索DM数据库配置助手然后一直下一步 然后搜索DM管理工具 登录 登录成功 widows版本安装成功 Linux安装 操作系统CPU数据库CentOS7x86_64 架构dm8_20230418_x86_rh6_64 …

首个ChatGPT机器人- Figure 01;李开复旗下零一万物推出Yi系列AI大模型API

&#x1f989; AI新闻 &#x1f680; 首个ChatGPT机器人- Figure 01 摘要&#xff1a;Figure 01是一个由初创公司Figure联合OpenAI开发的人形机器人。它展示了与人类和环境互动的能力&#xff0c;可以说话、看东西&#xff0c;并且可以执行各种任务&#xff0c;如递食物、捡垃…

CSS案例-1.字体样式练习

效果 知识点 字体大小font-size 相对长度单位 说明 em 相对于当前对象内文本的字体尺寸 px 像素,最常用,推荐使用 绝对长度单位 说明 in 英寸 cm 厘米 mm 毫米 pt 点 Unicode字体 字体名称 英文名称 Unicode编码 宋体 SimSun \5B8B\4F53 新宋体 NSimSun \65B0\5B8B\4F53

微服务初识

1.认识微服务 随着互联网行业的发展&#xff0c;对服务的要求也越来越高&#xff0c;服务架构也从单体架构逐渐演变为现在流行的微服务架构。这些架构之间有怎样的差别呢&#xff1f; 1.1.单体架构 单体架构&#xff1a;将业务的所有功能集中在一个项目中开发&#xff0c;打…

理论学习:CNN卷积核与通道讲解

参考链接&#xff1a; CNN卷积核与通道讲解_cnn卷积核如何确定-CSDN博客 单通道卷积 多通道卷积&#xff08;一个卷积核&#xff09; 以彩色图像为例&#xff0c;包含三个通道&#xff0c;分别表示RGB三原色的像素值&#xff0c;输入为&#xff08;3,5,5&#xff09;&#xf…

centos破解root密码以及如何防止他人破解root密码

目录 破解root密码 服务器重启 1.再重启页面上下选择第一个按e进入内核编辑模式 2.找到linux16开头的一行&#xff0c;光标移动到最后添加 init/bin/sh Ctrlx 保存 3.进入单用户模式 4.重新挂在根分区 5.关闭selinux 6.更新密码 passwd 7.在根分区下面创建一个隐藏文件…

对模型性能进行评估(Machine Learning 研习十五)

在上一篇我们已然训练了一个用于对数字图像识别的模型&#xff0c;但我们目前还不知道该模型在识别数字图像效率如何&#xff1f;所以&#xff0c;本文将对该模型进行评估。 使用交叉验证衡量准确性 评估模型的一个好方法是使用交叉验证&#xff0c;让我们使用cross_val_score…