importwin.ui;/*DSG{{*/varwinform = win.form(text="斗鱼简易播放器";right=935;bottom=607)

winform.add(

btnFullScreen={cls="button";text="全屏";left=488;top=560;right=584;bottom=592;db=1;dl=1;z=4};

btnView={cls="button";text="查看";left=360;top=560;right=456;bottom=592;db=1;dl=1;z=2};

custom={cls="custom";text="custom";left=16;top=16;right=921;bottom=525;ah=1;aw=1;z=5};

edRoomId={cls="edit";text="https://www.douyu.com/71771";left=120;top=560;right=344;bottom=593;db=1;dl=1;edge=1;multiline=1;z=1};

static={cls="static";text="直播间地址";left=24;top=568;right=104;bottom=592;db=1;dl=1;transparent=1;z=3};

static2={cls="static";text="音量";left=680;top=576;right=720;bottom=594;db=1;dl=1;transparent=1;z=7};

trackbar={cls="trackbar";left=720;top=560;right=904;bottom=590;db=1;dl=1;max=100;min=0;z=6}

)/*}}*/importmpvPlayer;importhpsocket.tcpPullClient;importthread.commandvarmpv = mpvPlayer(winform.custom);vartcpPullClient = hpsocket.tcpPullClient()varthCmd = thread.command()

thCmd.onChat =function(nick, txt){

mpv.setOption("osd-msg1", nick ++":"++ txt );

}varmpvOption = {

["osd-font-size"] = 35;// 字体大小["osd-spacing"] = 2;// 字体间距["osd-align-x"] ="center";// 显示位置["osd-align-y"] ="bottom";

["osd-back-color"] ="#171111";// 背景颜色}for(k,vinmpvOption){

mpv.setOption(k,v)

}varsendData =function(s){vardata = {

int len;

struct msg = {

int len;

wordtype= 689;

byte cryptedField;

byte reservedField;

byte body[] = s;

byte e;

}

}

data.len = raw.sizeof(data.msg)

data.msg.len = data.len

tcpPullClient.send( data,raw.sizeof(data ))

}varloginreq =function(roomId){

sendData("type@=loginreq/roomid@="++ roomId ++"/")

}varjoingroup =function(roomId){

sendData("type@=joingroup/rid@="++ roomId ++"/gid@=-9999/")

}varkeepLive =function(){

sendData("type@=mrkl/")

}vargetFlvUrl =function(link){importcrypt;importweb.json;importinet.http;if!#linkreturnnull,"请填写房间号";

link = string.match( link,"(.+?)$")if!linkreturnnull,"房间号填写有误";varhttp = inet.http()// 获取直播房间详情varhtml = http.get("http://open.douyucdn.cn/api/RoomApi/room/"++ link )if!htmlreturnnull,"网络连接有误";varr = web.json.parse( html )if( r.error !== 0 )returnnull,"数据解析有误,网站可能已更新";varroomId = r.data.room_idvarroomInfo = {

name = r.data.owner_name;

roomName = r.data.room_name;

roomId = roomId

}if( r.data.room_status ==="2"){returnnull,"没有开播";

}varkey ="zNzMV1y4EMxOHS6I5WKm"vart =tonumber(time())varbasicUrl ="http://capi.douyucdn.cn/api/v1/"varpath ="room/"++ roomId ++"?aid=wp&cdn=ws&client_sys=wp&time="++ tvarurl = basicUrl ++ path ++"&auth="++ crypt.md5( path ++ key,false)

html = http.get( url )if( !html ){returnnull,"网络连接有误";

}varr = web.json.parse(html)if( r.error === 0 ){returnr.data.rtmp_url ++"/"++ r.data.rtmp_live, roomInfo;

}returnnull,"数据解析有误,网站可能已更新";

}vartmId;varview =function(link){varurl , roomInfo = win.invoke( getFlvUrl, link )if!urlreturnnull, roomInfo;

tcpPullClient.stop()if( !tcpPullClient.start("openbarrage.douyutv.com",8601,false) )returnnull,"连接斗鱼弹幕服务器失败";

loginreq( roomInfo.roomId)

joingroup(roomInfo.roomId)if( tmId ){

winform.killtimer(tmId)

}

tmId = winform.addtimer(

15000,function(hwnd,msg,id,tick){

keepLive()

}

)

winform.text = roomInfo.name ++":"++ roomInfo.roomName

mpv.command("loadfile", url)returntrue;

}

tcpPullClient.onPullReceive =function(hpTcpPullClient,connId,length){importthread.commandwhile(varmin, remain = 9, length;

;

remain >= min

) {

remain -= 4;varbuf = {INT len};if0 !== hpTcpPullClient.peek( buf, 4 )return;varlen = buf.len;ifremain < lenreturn;

remain -= len;varbufLen = 4+len

buf = raw.buffer( bufLen )if0 !== hpTcpPullClient.fetch( buf, bufLen )return;vars = raw.tostring(buf)if( string.match( s,`type@=(.+?)/`) =="chatmsg"){varnickname = string.match( s,`nn@=(.+?)/`)vartxt = string.match( s,`txt@=(.+?)/`)if( nickname ? txt ){

thread.command.post("onChat", nickname , txt )

}

}

}

}

winform.btnView.oncommand =function(id,event){owner.disabled =truevarlink = winform.edRoomId.textvarurl, err  = view(link)if( !url ){

winform.msgboxErr(err)

}owner.disabled =false}

winform.trackbar.pos = 70

mpv.setVolume(winform.trackbar.pos)

winform.trackbar.oncommand =function(id,event,pos){if( event == 0x8/*_TB_ENDTRACK*/){

mpv.setVolume(winform.trackbar.pos)

}elseif( event = 0x5/*_TB_THUMBTRACK*/){

mpv.setVolume(pos)

}

}

winform.btnFullScreen.oncommand =function(id,event){

winform.custom.fullscreen(true)

}importwin.ui.accelerator

win.ui.accelerator({

{ vkey =0x1B/*_VK_ESC*/;oncommand =function(id,event) winform.custom.fullscreen(false) }

{ vkey =0x7A/*_VK_F11*/; oncommand =function(id,event) winform.custom.fullscreen() }

},winform);

winform.show()

win.loopMessage();

斗鱼 html播放器,斗鱼直播平台简易播放器 v1.2 (20180223更新)相关推荐

  1. 带货直播平台搭建播放器端需要做哪些工作呢?

    4G时代已经过去,5G时代已然到来,互联网时代,直播已经成为了风口,在这个全民直播的时代,要想让自己的直播做得与众不同,或者要想要带货直播,那么就离不开带货直播平台搭建. 带货直播平台搭建成为直播系统 ...

  2. 魔坊APP项目-27-直播、客户端中调整窗口大小、能播放rtmp格式直播流的播放器模块

    直播 客户端中直播的界面调整和当前窗口一致 live_list.html <!DOCTYPE html> <html lang="en"> <head ...

  3. 播放器、直播平台、OBS相关测试

    功能测试 前后端分离情况下,视频资源是否可以正常获取,不管是服务器返回还是后台添加等 打开.关闭播放器 播放.暂停.停止播放器 拖动进度条查看是否卡顿 是否支持所有格式的文件?多个格式的文件进行测试 ...

  4. 开发类似斗鱼虎牙的运营级直播平台多少钱

    自从直播行业逐渐被大众认可并得到大众喜爱之后,市场上就迎来了一小波开发"热潮".虽说短视频的出现使得直播行业受到了一定影响,但本质上直播行业的地位还是十分稳定的.那么,要想开发直播 ...

  5. java视频播放器制作_java创建简易视频播放器

    java创建简易视频播放器 发布时间:2020-09-23 04:28:09 来源:脚本之家 阅读:98 作者:南柯一梦xihe 最近有个多媒体的作业,要求使用visualC++和OpenCV编写一个 ...

  6. 双双着眼行业纵深,虎牙、斗鱼凭借内容运营突围直播生态

    当直播行业进入存量时代,斗鱼虎牙的生态策略有望打破天花板? 过去几个月,金铲铲之战.英雄联盟手游.英雄联盟全球总决赛掀起了一波接一波的游戏热潮,斗鱼和虎牙这两个游戏直播界"扛把子" ...

  7. 直播源码开发视频直播平台,不得不了解的流程...

    随着直播行业的不断发展,直播平台市场已基本稳定,诸如斗鱼.虎牙等头部直播平台都已选择上市之路.如今开发视频直播平台还有市场吗?答案是"有".现在的视频直播平台在垂直细分领域的发展越 ...

  8. 关于主流直播平台(虎牙,斗鱼)用到的一些技术

    前言: 网络视频直播存在已有很长一段时间,随着移动上下行带宽提升及资费的下调, 视频直播被赋予了更多娱乐和社交的属性,人们享受随时随地进行直播和观看, 直播的打开时间和延迟变成了影响产品功能发展重要指 ...

  9. 使用selenium自动爬取斗鱼直播平台的所有房间信息

    使用selenium自动爬取斗鱼直播平台的所有房间信息 文章目录 使用selenium自动爬取斗鱼直播平台的所有房间信息 使用selenium实现动态页面模拟点击 什么是selenium? selen ...

最新文章

  1. mybatis中config.xml文件的解析
  2. 2020年第十一届蓝桥杯 - 国赛 - Python大学组 - H.答疑
  3. android防止左向右滑出程序,Android——ViewPager禁止左右滑动的实现
  4. mount --bind的用处
  5. 使用Visual Studio Code调试.net控制台应用程序的方法
  6. 00018_流程控制语句switch
  7. mysql qcow2_qcow2文件格式分析
  8. pbdom 不能解析gbk_备受家长追捧的公立学校,摇中率不到3%,还要抢着报名?速看大摇号学校全面解析!...
  9. java web 路径 .html,java web 路径(java web 路径).doc
  10. 键盘拆开重新安装步骤_笔记本键盘按键安装拆卸详解
  11. 决策树生成算法流程图
  12. Bugku之网站被黑
  13. lightGBM使用
  14. X5腾讯内核 安装线上内核本来能用,突然报115错误问题记录
  15. 苹果电脑如何修改服务器文件在哪里设置,电脑服务器修改mac地址
  16. css 宽度为百分比, 高度和宽度相等的设置
  17. CCPC 2050 万人编程竞赛热身赛:1001 赶火车
  18. 使用dockerfile制作定时执行任务镜像
  19. python scapy模块_关于scapy模块
  20. python使用turtle画一个三角形、正方形(矩形或四边形)

热门文章

  1. 【历史上的今天】10 月 31 日:压缩软件 Gzip 诞生;电子书的发明者出生;谷歌打造在线协作平台
  2. 延伸联接边界,扩展业务范围,全面迈向智能云网2.0时代
  3. UIBezierPath设置图片圆角
  4. 10-251 B1-5查询客户的订单情况
  5. Ubuntu系统使用输入法只能输入英文不能输入中文解决方法
  6. 6.4.3 相关还款责任信息
  7. 利用多线程爬取表情包
  8. SpringMVC(一)
  9. 【Python网络爬虫】企查查高级搜索及批量查询接口爬虫
  10. 关于SSL安全套接层协议