发新帖本帖赏金 50.00元(功能说明)我要提问
返回列表

E4A开发流媒体播放器-电视直播软件

[复制链接]
1700|13
手机看帖
扫描二维码
随时随地手机跟帖
gaoyang9992006|  楼主 | 2022-6-30 10:16 | 显示全部楼层 |阅读模式
本帖最后由 gaoyang9992006 于 2022-6-30 11:54 编辑

#申请原创# @21小跑堂
有时候想看看电视直播节目,发现很多软件都有广告,实在难受啊,怎么办呢,不如自己写一个。
视频源:可以去网上爬一套,通常视频直播源的流媒体地址都是m3u8结尾的,可以想法去网上找了。至于怎么找,不是本帖讨论内容。
开发软件:本人用的安卓手机,可以使用最简单的安卓开发工具E4A实施中文编程。
开发思路:最上面小窗口播放,支持全屏;下面有控制按钮,可以控制窗口显示模式,全屏模式;然后并排设置下拉列表,一列CCTV央视,另外一列地方卫视与精品节目频道
-------------------------------------------------------------------------------------------------------------------------------------------------------
频道地址存储
CCTV名字毕竟规则,可以使用一维数组存储,由于数组序号是从0开始的,我们可以
定义一个数组CCTVC(17) 存储CCTV1到CCTV17的频道地址,最后一个C表示通道、频道
那么CCTVC(0)对应的就是CCTV1
卫视与其他精品节目频道可使用二维数组存储,定义二维数组WSTVC(2)(100),最大可以存储100个频道名称和地址
思路有了,开始创建数组,注意E4A创建数组方式如下
变量 CCTVC 为 文本型(17)
    变量 WSTVC 为 文本型(2,100)
我们将初始化频道地址与下拉列表填充放到同一个函数内实现,方便调用。
过程 频道源()
        
    CCTVC(0)="http://125.210.152.19:9090/live/hzgq-cctv1gq-h264.m3u8"
    CCTVC(1)="http://125.210.152.19:9090/live/hzgq-cctv2gq-h264.m3u8"        
    CCTVC(2)="http://125.210.152.19:9090/live/hzgq-cctv3gq-h264.m3u8"
    CCTVC(3)="http://125.210.152.19:9090/live/hzgq-cctv4gq-h264.m3u8"        
    CCTVC(4)="http://125.210.152.19:9090/live/hzgq-cctv5gq-h264.m3u8"
    CCTVC(5)="http://125.210.152.19:9090/live/hzgq-cctv6gq-h264.m3u8"        
    CCTVC(6)="http://125.210.152.19:9090/live/hzgq-cctv7gq-h264.m3u8"
    CCTVC(7)="http://125.210.152.19:9090/live/hzgq-cctv8gq-h264.m3u8"
    CCTVC(8)="http://117.148.179.162/TVOD/88888888/224/3221231697/index.m3u8"
    CCTVC(9)="http://125.210.152.19:9090/live/hzgq-cctv10gq-h264.m3u8"        
    CCTVC(10)="http://125.210.152.19:9090/live/hzgq-cctv11gq-h264.m3u8"
    CCTVC(11)="http://125.210.152.19:9090/live/hzgq-cctv12gq-h264.m3u8"        
    CCTVC(12)="http://39.135.138.60:18890/PLTV/88888910/224/3221225638/index.m3u8"
    CCTVC(13)="http://39.135.138.59:18890/PLTV/88888910/224/3221225639/index.m3u8"        
    CCTVC(14)="http://39.135.138.59:18890/TVOD/88888910/224/3221225641/index.m3u8"
    CCTVC(15)="http://125.210.152.19:9090/live/hzgq-cctv16gq-h264.m3u8"
    CCTVC(16)="http://125.210.152.19:9090/live/hzgq-cctv17gq-h264.m3u8"        
        
        WSTVC(0,0)="精品纪录"
        WSTVC(1,0)="http://39.134.65.166/PLTV/88888888/224/3221225545/1.m3u8"        
        
        WSTVC(0,1)="天津卫视"
        WSTVC(1,1)="http://117.169.120.140:8080/live/hdtianjinstv/.m3u8"
        
        WSTVC(0,2)="宁夏卫视"
        WSTVC(1,2)="http://117.169.120.140:8080/live/ningxiastv/.m3u8"
        
        WSTVC(0,3)="江西卫视"
        WSTVC(1,3)="http://117.169.120.140:8080/live/jiangxistv/.m3u8"        
        
        WSTVC(0,4)="甘肃卫视"
        WSTVC(1,4)="http://117.169.120.140:8080/live/gansustv/.m3u8"
        
        WSTVC(0,5)="湖北卫视"
        WSTVC(1,5)="http://117.169.120.140:8080/live/hdhubeistv/.m3u8"
        
        WSTVC(0,6)="吉林卫视"
        WSTVC(1,6)="http://117.169.120.140:8080/live/jilinstv/.m3u8"        
        
        WSTVC(0,7)="安徽卫视"
        WSTVC(1,7)="http://117.148.179.177/PLTV/88888888/224/3221230215/index.m3u8"
        
        WSTVC(0,8)="黑龙江卫视"
        WSTVC(1,8)="http://117.148.179.162/PLTV/88888888/224/3221231520/index.m3u8"
        
        WSTVC(0,9)="湖南卫视"
        WSTVC(1,9)="http://117.148.179.135/PLTV/88888888/224/3221230206/index.m3u8"        
        
        WSTVC(0,10)="广东卫视"
        WSTVC(1,10)="http://111.20.33.93/TVOD/88888893/224/3221226216/index.m3u8"
        
        WSTVC(0,11)="四川卫视"
        WSTVC(1,11)="http://117.148.179.142/PLTV/88888888/224/3221231885/index.m3u8"
        
        WSTVC(0,12)="江苏卫视"
        WSTVC(1,12)="http://117.148.179.175/PLTV/88888888/224/3221231447/index.m3u8"               
        
        WSTVC(0,13)="东方卫视"
        WSTVC(1,13)="http://117.148.179.167/PLTV/88888888/224/3221231450/index.m3u8"
        
        WSTVC(0,14)="山东卫视"
        WSTVC(1,14)="http://117.148.179.137/PLTV/88888888/224/3221227909/index.m3u8"
        
        WSTVC(0,15)="贵州卫视"
        WSTVC(1,15)="http://39.134.65.179/PLTV/88888888/224/3221225888/1.m3u8"        
        
        WSTVC(0,16)="河北卫视"
        WSTVC(1,16)="http://125.210.152.19:9090/live/hzgq-hbwsgq1-h264.m3u8"
        
        WSTVC(0,17)="青海卫视"
        WSTVC(1,17)="http://125.210.152.19:9090/live/hszx-qhtv-h264.m3u8"
        
        WSTVC(0,18)="广西卫视"
        WSTVC(1,18)="http://39.134.115.163:8080/PLTV/88888910/224/3221225731/index.m3u8"        
        
        WSTVC(0,19)="北京卫视"
        WSTVC(1,19)="http://183.207.249.7/PLTV/3/224/3221225574/index.m3u8"
        
        WSTVC(0,20)="东南卫视"
        WSTVC(1,20)="http://39.135.138.59:18890/TVOD/88888910/224/3221225657/index.m3u8"
        
        WSTVC(0,21)="西藏卫视"
        WSTVC(1,21)="http://125.210.152.19:9090/live/hszx-xztv-h264.m3u8"        
        
        WSTVC(0,22)="陕西卫视"
        WSTVC(1,22)="http://117.148.179.156/PLTV/88888888/224/3221231408/index.m3u8"
        
        WSTVC(0,23)="新疆卫视"
        WSTVC(1,23)="http://125.210.152.19:9090/live/hszx-xjtv-h264.m3u8"
        
        WSTVC(0,24)="深圳卫视"
        WSTVC(1,24)="http://39.135.138.59:18890/PLTV/88888910/224/3221225741/index.m3u8"               
        
        WSTVC(0,25)="浙江卫视"
        WSTVC(1,25)="http://117.148.179.136/TVOD/88888888/224/3221231567/index.m3u8"
        
        WSTVC(0,26)="重庆卫视"
        WSTVC(1,26)="http://125.210.152.19:9090/live/hzgq-cqwsgq-h264.m3u8"
        
        WSTVC(0,27)="山西卫视"
        WSTVC(1,27)="http://liveflash.sxrtv.com/live/sxwshd.m3u8"        
        
        WSTVC(0,28)="三沙卫视"
        WSTVC(1,28)="http://125.210.152.19:9090/live/hzgq-ssws-h264.m3u8"
        
        WSTVC(0,29)="旅游卫视"
        WSTVC(1,29)="http://125.210.152.19:9090/live/hszx-lytv-h264.m3u8"
        
        WSTVC(0,30)="兵团卫视"
        WSTVC(1,30)="http://125.210.152.19:9090/live/hszx-bttv-h264.m3u8"        
        
        WSTVC(0,31)="内蒙卫视"
        WSTVC(1,31)="http://125.210.152.19:9090/live/hszx-nmgtv-h264.m3u8"
        
        WSTVC(0,32)="云南卫视"
        WSTVC(1,32)="http://125.210.152.19:9090/live/hzgq-ynwsgq-h264.m3u8"
        
        WSTVC(0,33)="河南卫视"
        WSTVC(1,33)="http://117.148.179.144/PLTV/88888888/224/3221231514/index.m3u8"        
        
        WSTVC(0,34)="旅游卫视"
        WSTVC(1,34)="http://111.63.117.13:6060/030000001000/LYWS/LYWS.m3u8"

        WSTVC(0,35)="东方卫视"
        WSTVC(1,35)="http://39.135.138.59:18890/PLTV/88888910/224/3221225659/index.m3u8"
        
        WSTVC(0,36)="香港文旅"
        WSTVC(1,36)="https://myun-hw-s3.myun.tv/melj80jz/lxx27bol/1551285536499984128.m3u8"               
        
        WSTVC(0,37)="四海钓鱼"
        WSTVC(1,37)="http://117.148.179.159/PLTV/88888888/224/3221231718/index.m3u8"
        
        WSTVC(0,38)="凤凰咨询"
        WSTVC(1,38)="http://playtv-live.ifeng.com/live/06OLEEWQKN4.m3u8"
        
        WSTVC(0,39)="上海纪实"
        WSTVC(1,39)="http://39.134.115.163:8080/PLTV/88888910/224/3221225654/index.m3u8"        
        
        WSTVC(0,40)="金鹰纪实"
        WSTVC(1,40)="http://111.20.33.93/TVOD/88888893/224/3221226351/index.m3u8"
        
        WSTVC(0,41)="北京纪实"
        WSTVC(1,41)="http://39.134.115.163:8080/PLTV/88888910/224/3221225676/index.m3u8"
        
        WSTVC(0,42)="陕西农林"
        WSTVC(1,42)="http://111.20.33.93/PLTV/88888893/224/3221226229/index.m3u8"        
        
        WSTVC(0,43)="黑莓动画"
        WSTVC(1,43)="http://183.207.249.7/PLTV/3/224/3221225555/index.m3u8"
        
        WSTVC(0,44)="NewTV超级电影"
        WSTVC(1,44)="http://39.134.115.163:8080/PLTV/88888910/224/3221225623/index.m3u8"
        
        WSTVC(0,45)="华数高清"
        WSTVC(1,45)="http://125.210.152.19:9090/live/hzgq-hsfwgq-h264.m3u8"        
        
        WSTVC(0,46)="教育1台"
        WSTVC(1,46)="http://117.148.179.156/TVOD/88888888/224/3221231714/index.m3u8"
        
        WSTVC(0,47)="动作电影"
        WSTVC(1,47)="http://39.134.65.164/PLTV/88888888/224/3221225555/1.m3u8"
        
        WSTVC(0,48)="黑莓电影"
        WSTVC(1,48)="http://183.207.249.14/PLTV/3/224/3221225567/index.m3u8"        
        
        WSTVC(0,49)="超级电影"
        WSTVC(1,49)="http://39.134.65.164/PLTV/88888888/224/3221225644/1.m3u8"
        
        WSTVC(0,50)="西部电影频道"
        WSTVC(1,50)="http://111.20.33.93/PLTV/88888893/224/3221226364/index.m3u8"
        
        WSTVC(0,51)="动画电影"
        WSTVC(1,51)="http://118.26.120.36:55336/tslive/c51_lb_118_600_t10/c51_lb_118_600_t10.m3u8?key=0b292c335e5837e94f25985f7c35b1efe"               
        
        WSTVC(0,52)="李连杰系列"
        WSTVC(1,52)="http://121.51.249.48/tx.hls.huya.com/src/1394565196-1394565196-5989611908959830016-2789253848-10057-A-0-1-imgplus.m3u8"
        
        WSTVC(0,53)="林正英系列"
        WSTVC(1,53)="http://121.51.249.48/tx.hls.huya.com/src/1394575543-1394575543-5989656348986441728-2789274542-10057-A-0-1.m3u8"
        
        WSTVC(0,54)="周星驰系列"
        WSTVC(1,54)="http://121.51.249.48/tx.hls.huya.com/src/1394575534-1394575534-5989656310331736064-2789274524-10057-A-0-1-imgplus.m3u8"
        
        WSTVC(0,55)="中国功夫"
        WSTVC(1,55)="http://39.134.65.164/PLTV/88888888/224/3221225604/1.m3u8"
        
        WSTVC(0,56)="成龙系列"
        WSTVC(1,56)="http://117.148.179.134/PLTV/88888888/224/3221231687/index.m3u8"
        
        
        变量 i 为 整数型
        变量循环首 i=0 至 16
                CCTV下拉列表框.添加项目("CCTV"&整数到文本(i+1))
        变量循环尾        
        
        变量循环首 i=0 至 56
                卫视下拉列表框.添加项目(WSTVC(0,i))
        变量循环尾
        
结束 过程
好了,后面我们只需要调用这些数组内的地址填充到播放函数即可
接下来我们实现布局的均匀化,因为E4A没提供布局功能,但是我们可以使用代码设置这些控件的布局
界面.png
我们给控件都起个很好认的名字

过程 布局()
        变量 x 为 整数型
        变量 y 为 整数型
'第1行按钮布局方式--------------------------------
        x=取屏幕宽度()*75/320
        y=取屏幕宽度()*4/320
        播放按钮.宽度=x
        暂停按钮.宽度=x
        继续按钮.宽度=x
        退出按钮.宽度=x
        
        播放按钮.左边=(0*x)+(1*y)
        暂停按钮.左边=(1*x)+(2*y)
        继续按钮.左边=(2*x)+(3*y)
        退出按钮.左边=(3*x)+(4*y)
'第2行按钮布局方式--------------------------------        
        x=取屏幕宽度()*80/320
        y=取屏幕宽度()*20/320
        
        全屏1按钮.宽度=x
        全屏2按钮.宽度=x        
        全屏3按钮.宽度=x
        
        全屏1按钮.左边=(0*x)+(1*y)
        全屏2按钮.左边=(1*x)+(2*y)
        全屏3按钮.左边=(2*x)+(3*y)
'第3行按钮布局方式--------------------------------        
        x=取屏幕宽度()*75/320
        y=取屏幕宽度()*4/320
        画面1按钮.宽度=x
        画面2按钮.宽度=x
        画面3按钮.宽度=x
        画面4按钮.宽度=x
        
        画面1按钮.左边=(0*x)+(1*y)
        画面2按钮.左边=(1*x)+(2*y)
        画面3按钮.左边=(2*x)+(3*y)
        画面4按钮.左边=(3*x)+(4*y)
        
        '第4行标签布局方式--------------------------------        
        CCTV标签.宽度=(取屏幕宽度()*3/8)
        WSTV标签.宽度=(取屏幕宽度()*3/8)        
    CCTV标签.左边=(取屏幕宽度()*1/4)-(CCTV标签.宽度)/2
    WSTV标签.左边=(取屏幕宽度()*3/4)-(WSTV标签.宽度)/2
        
        '第5行下拉列表布局方式--------------------------------        
        CCTV下拉列表框.宽度=(取屏幕宽度()*3/8)
        卫视下拉列表框.宽度=(取屏幕宽度()*3/8)        
       CCTV下拉列表框.左边=(取屏幕宽度()*1/4)-(CCTV下拉列表框.宽度)/2
       卫视下拉列表框.左边=(取屏幕宽度()*3/4)-(卫视下拉列表框.宽度)/2        
        

        按钮1.宽度=(取屏幕宽度()*1/16)
        按钮2.宽度=(取屏幕宽度()*1/16)        
        按钮1.左边=CCTV下拉列表框.左边+CCTV下拉列表框.宽度
        按钮2.左边=卫视下拉列表框.左边+卫视下拉列表框.宽度
        
结束 过程
通过计算让按钮大小和相对位置固定下来。
当按下对应列表右侧的播放按钮后,将播放列表框当前显示的项对应的电视直播
事件 按钮1.被单击()
        小窗口播放()
        隐藏选集和清晰度()
        player2022.重构()
        player2022.播放视频(CCTV下拉列表框.取项目内容(CCTV下拉列表框.现行选中项),CCTVC(CCTV下拉列表框.现行选中项),"")
结束 事件

事件 按钮2.被单击()
        小窗口播放()
        隐藏选集和清晰度()
        player2022.重构()
        player2022.播放视频(卫视下拉列表框.取项目内容(卫视下拉列表框.现行选中项),WSTVC(1,卫视下拉列表框.现行选中项),"")
结束 事件
这里提供一下工程源文件,感兴趣的一起开发这个软件,还可以改成在安卓电视上使用的电视软件 MyTV - 2.zip (5.59 MB)

使用特权

评论回复

打赏榜单

21小跑堂 打赏了 50.00 元 2022-07-04
理由:恭喜通过原创文章审核!请多多加油哦!

评论
gaoyang9992006 2022-9-7 15:42 回复TA
最新的播放地址访问 https://bbs.21ic.com/icview-3016290-1-1.html 本帖中地址已经过期,如果感兴趣自行替换重新编译成app 
gaoyang9992006 2022-7-4 12:40 回复TA
APP下载在楼下板凳上 
21小跑堂 2022-7-4 10:07 回复TA
使用E4A中文安卓开发工具,实现流媒体播放软件的开发。 
gx_stove 2022-6-30 11:15 回复TA
膜拜大佬,赞一个 

相关帖子

lansebuluo| | 2022-7-2 09:15 | 显示全部楼层
厉害

使用特权

评论回复
gaoyang9992006|  楼主 | 2022-7-4 10:48 | 显示全部楼层
一周后有空再给升级一下,实现电视投屏功能,并增加各省的地方台。

使用特权

评论回复
gaoyang9992006|  楼主 | 2022-7-4 12:39 | 显示全部楼层
APP下载地址 MyCCTV (2).zip (4.77 MB)

使用特权

评论回复
zqykkkk| | 2022-7-5 16:41 | 显示全部楼层
gaoyang9992006 发表于 2022-7-4 10:48
一周后有空再给升级一下,实现电视投屏功能,并增加各省的地方台。

播放的地地址怎么解析出来

使用特权

评论回复
gaoyang9992006|  楼主 | 2022-7-5 16:58 | 显示全部楼层
zqykkkk 发表于 2022-7-5 16:41
播放的地地址怎么解析出来

这个是核心科技,要保密的,不然容易侵权。方法差不多就是你在看视频的时候,可以直接从你局域网的数据包读取到你的流媒体地址。
比如你局域网有网络电视在看直播视频,我在同一个局域网就能探测到这个直播码流的地址。

使用特权

评论回复
zqykkkk| | 2022-7-7 15:28 | 显示全部楼层
gaoyang9992006 发表于 2022-7-5 16:58
这个是核心科技,要保密的,不然容易侵权。方法差不多就是你在看视频的时候,可以直接从你局域网的数据包 ...

可是有些是结尾mp4的,不是m3u8.怎么办。

使用特权

评论回复
gaoyang9992006|  楼主 | 2022-7-8 09:21 | 显示全部楼层
zqykkkk 发表于 2022-7-7 15:28
可是有些是结尾mp4的,不是m3u8.怎么办。

你把链接替换成你的mp4的一样,只要是流媒体都支持。

使用特权

评论回复
zqykkkk| | 2022-7-28 10:20 | 显示全部楼层
gaoyang9992006 发表于 2022-7-8 09:21
你把链接替换成你的mp4的一样,只要是流媒体都支持。

可是有的不行,就http://125.210.152.19:9090 数字的就可以,http://1972762450.cloudvdn.com/带英文就不支持

使用特权

评论回复
gaoyang9992006|  楼主 | 2022-7-29 22:56 | 显示全部楼层
zqykkkk 发表于 2022-7-28 10:20
可是有的不行,就http://125.210.152.19:9090 数字的就可以,http://1972762450.cloudvdn.com/带英文就不 ...

不行的那些是人家封了,或者修改了链接,重新找新的流媒体地址就行了。

使用特权

评论回复
发新帖 本帖赏金 50.00元(功能说明)我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:西安公路研究院南京院
简介:主要工作从事监控网络与通信网络设计,以及从事基于嵌入式的通信与控制设备研发。擅长单片机嵌入式系统物联网设备开发,音频功放电路开发。

1889

主题

15608

帖子

197

粉丝