IDEA编译安卓源码TVBox(2)

news2025/1/15 13:05:47

一、项目结构:主要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(){
        @Override
        public 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() {
                                        @Override
                                        public 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.coloradmin.cn/o/1519442.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据结构(二)顺序表和链表

1.线性表 线性表&#xff08;linear list&#xff09;是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使 用的数据结构&#xff0c;常见的线性表&#xff1a;顺序表、链表、栈、队列、字符串... 线性表在逻辑上是线性结构&#xff0c;也就说是连续的一条直…

鸿蒙车载原生开发,拓展新版图

一天内连发“五弹”、HiCar 4.0首次上车 华为鸿蒙狂扩“汽车朋友圈”-上游新闻 汇聚向上的力量 3月15日&#xff0c;在“华为云&华为终端云服务创新峰会2024”上&#xff0c;华为首批汽车行业伙伴广汽传祺、岚图汽车、零跑汽车、凯翼汽车加入鸿蒙生态合作&#xff0c;华为…

C语言:操作符详解(下)

目录 一、逗号表达式二、下标访问[ ]、函数调用()1. [ ]下标引用操作符2.函数调用操作符 三、结构成员访问操作符1.结构体(1) 结构的声明(2) 结构体变量的定义和初始化 2.结构成员访问操作符(1)结构体成员的直接访问(2)结构体成员的间接访问 四、操作符的属性&#xff1a;优先级…

搭建谷歌Gemini

前言 Gemini是Google AI于2023年发布的大型语言模型&#xff0c;拥有强大的文本生成、理解和转换能力。它基于Transformer模型架构&#xff0c;并使用了大量文本和代码数据进行训练。Gemini可以执行多种任务&#xff0c;包括&#xff1a; 生成文本&#xff1a;可以生成各种类…

蓝桥杯2022年第十三届省赛真题-灭鼠先锋

LLLV solution1 必输&#xff1a;只有一个格子 手算可以模拟出来~ solution2 OOOO状态下&#xff0c;谁先下谁必输 》问题转化为谁先下满第一排&#xff0c;谁必赢&#xff0c;可以非常容易的模拟出来

buuctf warmup 超详细

目录 1.代码审计&#xff1a; 2.逻辑分析 3.总结分析 4.分析记录 5.疑点解答 1.代码审计&#xff1a; <?phphighlight_file(__FILE__);class emmm //定义了一个类{public static function checkFile(&$page) 类里面又申明创建…

稀碎从零算法笔记Day18-LeetCode:移除链表元素

前言&#xff1a;接近20day的时间&#xff0c;终于来到了链表。 题型&#xff1a;指针、链表 链接&#xff1a;203. 移除链表元素 - 力扣&#xff08;LeetCode&#xff09; 来源&#xff1a;LeetCode 题目描述 给你一个链表的头节点 head 和一个整数 val &#xff0c;请你…

UE4_AI_行为树_行为树快速入门指南

声明&#xff1a;学习笔记。 在 行为树快速入门指南 中&#xff0c;你将学会如何创建一个敌方AI&#xff0c;该AI看到玩家后会做出反应并展开追逐。当玩家离开视线后&#xff0c;AI将在几秒钟后&#xff08;这可根据你的需求进行调整&#xff09;放弃追逐&#xff0c;并在场景中…

P1086 [NOIP2004 普及组] 花生采摘

题目描述 鲁宾逊先生有一只宠物猴&#xff0c;名叫多多。这天&#xff0c;他们两个正沿着乡间小路散步&#xff0c;突然发现路边的告示牌上贴着一张小小的纸条&#xff1a;“欢迎免费品尝我种的花生&#xff01;――熊字”。 鲁宾逊先生和多多都很开心&#xff0c;因为花生正…

xnip滚动截图失效

出现问题背景 系统&#xff1a;macos 截图区域&#xff1a;iterm终端 问题原因 截图背景为非纯色背景&#xff0c;我在iterm中的背景设置了图片&#xff0c;即使用图片作为终端背景&#xff0c;而xnip不支持非纯色背景的滚动截图。 解决方法 取消使用图片背景。 引用 滚…

Linux编译器gcc/g++的功能与使用

一、程序的生成 首先&#xff0c;我们知道程序的编译分为四步&#xff1a; 1、预处理 2、编译 3、汇编 4、链接 1.1预处理 预处理功能主要包括头文件展开、宏定义、文件包含、条件编译、去注释等。 所谓的头文件展开就是在预处理时候&#xff0c;将头文件内容拷贝至源文…

算法之二分查找算法

二分查找算法简介 1. 首先说明二分查找算法是比较恶心, 细节很多, 很容易写出死循环的算法, 但熟悉了之后是最简单的算法. 2. 其次我们可能听说过二分查找的前提是数组有序的前提下进行, 但其实不一定. 3. 二分查找算法有一套模板: 朴素的二分模板: 比较简单, 但是有局限性查找…

【Office学习】Word参考文献交叉引用之连续引用

Word中为实现连续多个参考文献的的引用&#xff0c;如[1-3] 通过交叉引用至内容中的【1】和【3】不必多说&#xff0c;关键问题是如何变成[1-3]&#xff0c;如果强行删掉两边括号&#xff0c;更新后会恢复原样不说&#xff0c;打印或者转为PDF无法识别到删除的修改。 例如 1…

北斗卫星在桥隧坡安全监测领域的应用及前景展望

北斗卫星在桥隧坡安全监测领域的应用及前景展望 北斗卫星系统是中国独立研发的卫星导航定位系统&#xff0c;具有全球覆盖、高精度定位和海量数据传输等优势。随着卫星导航技术的快速发展&#xff0c;北斗卫星在桥隧坡安全监测领域正发挥着重要的作用&#xff0c;并为相关领域…

C++ 网络编程学习五

C网络编程学习五 网络结构的更新单例模式懒汉单例模式饿汉单例模式懒汉式指针智能指针设计单例类 服务器优雅退出asio的多线程模型IOServiceasio多线程IOThreadPoolepoll 和 iocp的一些知识点 网络结构的更新 asio网络层&#xff0c;会使用io_context进行数据封装&#xff0c;…

Typora设置文本颜色

目录 总共分为三种方法 1.使用markdown语法的内联公式 2.使用HTML语法 3.借助第三方软件&#xff08;不建议&#xff0c;操作没那么顺滑&#xff09; 总共分为三种方法 1.使用markdown语法的内联公式 <1>首先需要在设置中勾选Markdown扩展语法下的内联公式&#xff…

QML| QML 组件

# | QML 组件 | 组件是可重用的、封装好的QML类型,并提供了定义好的接口。组件一般使用一个.qml文件定义。前面讲到的使用QML文档定义对象类型,其实就是创建了一个组件。这种使用独立QML文件创建组件的方法这里不再讨论。除了使用单独的QML文件,还可以使用Component类型在一…

DVWA 靶场搭建

文章目录 环境说明1 DVWA 简介2 DVWA 安装 环境说明 操作系统&#xff1a;Windows 10PHPStudy 版本: 8.1.1.3Apache 版本&#xff1a;2.4.39MySQL 版本 5.7.26 1 DVWA 简介 DVWA&#xff08;Damn Vulnerable Web App&#xff09;是一个基于 “PHP MySQL” 搭建的Web应用程序&…

【linux】进程(一)

先看预备知识&#xff0c;对本篇文章更有帮助。 目录 进程概念&#xff1a;了解动态运行的概念&#xff1a;进程的本身内部属性&#xff1a;启动进程&#xff1a;关闭进程&#xff1a; 如何创建进程&#xff1a;进程状态&#xff1a;直接看进程状态&#xff1a;僵尸进程与孤儿…

L2-002 链表去重(Python)

给定一个带整数键值的链表 L&#xff0c;你需要把其中绝对值重复的键值结点删掉。即对每个键值 K&#xff0c;只有第一个绝对值等于 K 的结点被保留。同时&#xff0c;所有被删除的结点须被保存在另一个链表上。例如给定 L 为 21→-15→-15→-7→15&#xff0c;你需要输出去重后…