# lBCastWidget **Repository Path**: jiancang/lBCastWidget ## Basic Information - **Project Name**: lBCastWidget - **Description**: apicloud乐播投屏【lBCast】模块demo code - **Primary Language**: JavaScript - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2020-03-08 - **Last Updated**: 2021-09-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # lBCastWidget #### 介绍 apicloud乐播投屏【[lBCast](http://www.apicloud.com/mod_detail/103399)】模块 demo widget code #### 使用方式 apicloud论坛维护的demo https://community.apicloud.com/bbs/thread-150738-1-1.html #### 使用文档
[initLBCast](#initLBCast) [searchDevice](#searchDevice) [stopSearch](#stopSearch) [connectDevice](#connectDevice) [stopConnect](#stopConnect) [castStart](#castStart) [castStop](#castStop) [progressInfo](#progressInfo) [addVolume](#addVolume) [reduceVolume](#reduceVolume) [setVolume](#setVolume) [pauseOrResume](#pauseOrResume) [setSeekTo](#setSeekTo) [pushBarrage](#pushBarrage)
###### **仅支持android的方法** [startMirror](#startMirror) [stopMirror](#stopMirror) ###### **仅支持ios的方法** [canBarrage](#canBarrage) [canPushBarrageNow](#canPushBarrageNow) # **论坛示例** 为帮助用户更好更快的使用模块,论坛维护了一个示例(模块demo论坛帖链接),示例中包含示例代码、知识点讲解、注意事项等,供您参考。 模块demo及widget下载见论坛帖:https://community.apicloud.com/bbs/thread-150738-1-1.html # **概述** **乐播投屏简介** 乐播投屏SDK,是一套基于乐播自主研发的私有协议--乐联协议开发适用于Android/iOS设备的程序接口,开发者通过调用本模块接口,可以轻松实现将视频流媒体(mp4、flv等)的视频内容、直播流媒体(rtmp、hls、http-flv等)的视频内容、音乐 和 图片 推送到到智能电视端进行播放。也可将手机屏幕画面实时投屏到智能电视上(无延时),投视频、投手机实时画面、投音乐、投图片轻松搞定。乐播投屏具有速度快(手机和电视端可以同步,无延时)、不耗流量、耗电少等特点。 本模块封装了原生乐播投屏发送端SDK,已全面支持iOS和Android系统;接入后,能让您的App轻松拥有投屏与镜像能力,从而在满足用户需求的同时,也将您的内容分发上大屏。可广泛应用于通话,视频,音乐,直播,游戏,教育,办公等场景。 **应用场景** 1、跨屏游戏 高清、实时地将手游投到电视上,体验大屏手游的快感和刺激感。 2、会议演示 一部手机随时召集会议,让会议操作流程简化,效率更高。 3、视频点播 将手机上的任意影像投在电视屏上,与家人一起互动。 4、音乐共享 不需要华丽音响,就可以把无线音乐响彻整个house。 5、图片分享 朋友聚会聊天,将手机中的照片投到大屏,和朋友们分享照片故事。 6、车载导航 将手机中的信息传达到导航屏上,方便操控,安全驾驶。 7、电脑投屏 将电脑屏幕,电脑文档投屏至会议室大屏幕中,投屏开会或演示。 **模块使用攻略** 使用该模块,开发者需要到[乐播投屏官网](http://cloud.hpplay.cn)注册账号后进行用户认证,认证通过后可创建双平台应用获取相应的AppID和AppSecret,这个过程中如果有问题可以联系乐播投屏客服。 **使用此模块之前建议先配置 [config.xml](https://docs.apicloud.com/Dev-Guide/app-config-manual) 文件,配置完毕,需通过云端编译生效,推荐使用自定义loader,配置方法如下:** - 名称:lBCast - 参数:androidAppId、androidSecret、iosAppId、iosSecret - 配置示例: ```xml ``` ## **模块接口**
# **initLBCast** 初始化乐播投屏模块。 initLBCast(callback(ret, err)) ## callback(ret, err) ret: - 类型:JSON 对象 - 内部字段: ```js { status: true //布尔型;true||false,失败时返回false msg: //返回说明 } ``` ## 示例代码 ```js var LBCast = api.require('lBCast'); LBCast.initLBCast(function(ret, err) { if (ret.status) { alert(ret.msg); } else { alert('初始化失败,检查appid和secretkey配置是否正确'); } }); ``` ## 可用性 iOS系统,Android系统 可提供的1.0.0及更高版本
# **searchDevice** 搜索投屏设备,使用前需要先初始化模块,默认方法会每隔一段时间刷新一次设备数据,在适当的时候调用stopSearch方法即可停止搜索。 searchDevice(callback(ret, err)) ## callback(ret, err) ret: - 类型:JSON 对象 - 内部字段: ```js { result:, //数字类型; //0 设备搜索成功 //1 设备搜索发生错误error,详细参看msg字段 //2 模块未正常初始化 //3 未搜索到设备 list:[ //json,设备列表,result为0的时候返回,其他不返回 { "name":"乐播投屏S1", //设备名称 "ip":"192.168.0.100" //IP地址 } ], msg: //返回说明内容 } ``` ## 示例代码 ```js var LBCast = api.require('lBCast'); LBCast.searchDevice(function(ret, err) { if (ret.result) { //搜索投屏设备成功 } else { alert(ret.msg); } }); ``` ## 可用性 iOS系统,Android系统 可提供的1.0.0及更高版本
# **stopSearch** 停止搜索设备 stopSearch(callback(ret, err)) ## callback(ret, err) ret: - 类型:JSON 对象 - 内部字段: ```js { result: true //布尔型;true||false msg: //字符串;内容说明 } ``` ## 示例代码 ```js var LBCast = api.require('lBCast'); LBCast.stopSearch(function(ret, err) { if (ret.result) { alert('成功'); } else { alert(ret.msg); } }); ``` ## 可用性 iOS系统,Android系统 可提供的1.0.0及更高版本
# **connectDevice** 链接投屏设备,使用前需先搜索投屏设备 connectDevice({params}, callback(ret, err)) ## params name: - 类型:字符串 - 描述:(必须项)搜索投屏设备成功后返回的设备名称。 ip: - 类型:字符串 - 描述:(必须项)搜索投屏设备成功后返回的设备ip地址。 ## callback(ret, err) ret: - 类型:JSON 对象 - 内部字段: ```js { status: //数字类型; //0 设备链接成功 //1 设备链接错误error,详细参看msg字段 //2 模块未正常初始化 //3 未找到该设备 msg: //字符串,提示说明 } ``` err: - 类型:JSON 对象 - 内部字段: ```js { status:false //布尔型;false msg: //字符串;提示说明 } ``` ## 示例代码 ```js var LBCast = api.require('lBCast'); LBCast.connectDevice({ name: '乐播投屏S1', ip: '192.168.0.105' }, function(ret, err) { if (ret.status) { alert('投屏成功'); } else { alert(err.msg); } }); ``` ## 可用性 iOS系统,Android系统 可提供的1.0.0及更高版本
# **stopConnect** 断开链接 stopConnect(callback(ret, err)) ## callback(ret, err) ret: - 类型:JSON 对象 - 内部字段: ```js { result: true //布尔型;true||false msg: //字符串;内容说明 } ``` ## 示例代码 ```js var LBCast = api.require('lBCast'); LBCast.stopConnect(function(ret, err) { if (ret.result) { alert('成功'); } else { alert(ret.msg); } }); ``` ## 可用性 iOS系统,Android系统 可提供的1.0.0及更高版本
# **castStart** 投屏,需要先链接设备 cast({params}, callback(ret, err)) ## params url: - 类型:字符串 - 描述:(必须项)需要投屏的网络视频地址或者本地可识别的真实路径,暂不支持widget、fs等地址类型。 mediaType: - 类型:数字类型 - 描述:(必须项)需要投屏的媒体类型。0在线视频、1本地视频、2在线图片、3本地图片、4在线音乐、5本地音乐 startPosition: - 类型:数字类型 - 描述:(非必须项)媒体投屏的起始时间(秒),仅类型为视频、音乐有效。 - 默认值:0 ## callback(ret, err) ret: - 类型:JSON 对象 - 内部字段: ```js { result: //数字类型; //0:成功 //1:发生错误,参看msg //2:未匹配正确的媒体类型 //3:媒体类型错误 //4:当前连接不支持播放 msg: //字符串;result为0时候不返回,其他返回 playStatus: 2 //数字类型;播放状态 //1:正在加载 //2:正在播放 //3:暂停播放 //4:播放完成 //5:播放结束 } ``` ## 示例代码 ```js var LBCast = api.require('lBCast'); LBCast.castStart({ url: 'http://hpplay.cdn.cibn.cc/videos/01.mp4', mediaType:0, startPosition:10 }, function(ret, err) { console.log(JSON.stringify(ret)); }); ``` ## 可用性 iOS系统,Android系统 可提供的1.0.0及更高版本
# **castStop** 退出投屏 castStop(callback(ret, err)) ## callback(ret, err) ret: - 类型:JSON 对象 - 内部字段: ```js { result: true //布尔型;true||false msg: //字符串;内容说明 } ``` ## 示例代码 ```js var LBCast = api.require('lBCast'); LBCast.castStop(function(ret, err) { if (ret.result) { alert('成功'); } else { alert(ret.msg); } }); ``` ## 可用性 iOS系统,Android系统 可提供的1.0.0及更高版本
# **progressInfo** 播放进度信息, progressInfo(callback(ret, err)) ## callback(ret, err) ret: - 类型:JSON 对象 - 内部字段: ```js { duration:80 //数字类型;总时长(秒) currentTime:66 //数字类型;当前播放位置(秒) } ``` ## 示例代码 ```js var LBCast = api.require('lBCast'); LBCast.progressInfo(function(ret, err) { console.log(JSON.stringify(ret)); }); ``` ## 可用性 iOS系统,Android系统 可提供的1.0.0及更高版本
# **addVolume** 增加音量 addVolume(callback(ret, err)) ## callback(ret, err) ret: - 类型:JSON 对象 - 内部字段: ```js { result: true //布尔型;true||false msg: //字符串;内容说明 } ``` ## 示例代码 ```js var LBCast = api.require('lBCast'); LBCast.addVolume(function(ret, err) { if (ret.result) { alert('成功'); } else { alert(ret.msg); } }); ``` ## 可用性 iOS系统,Android系统 可提供的1.0.0及更高版本
# **reduceVolume** 减少音量 reduceVolume(callback(ret, err)) ## callback(ret, err) ret: - 类型:JSON 对象 - 内部字段: ```js { result: true //布尔型;true||false msg: //字符串;内容说明 } ``` ## 示例代码 ```js var LBCast = api.require('lBCast'); LBCast.reduceVolume(function(ret, err) { if (ret.result) { alert('成功'); } else { alert(ret.msg); } }); ``` ## 可用性 iOS系统,Android系统 可提供的1.0.2及更高版本
# **setVolume** 设置音量 setVolume({params}, callback(ret, err)) ## params volume: - 类型:数字 - 描述:(可选项)需要调节的音量值。 - 默认值:20 ## callback(ret, err) ret: - 类型:JSON 对象 - 内部字段: ```js { result: true, //布尔型; msg: //字符串类型;内容说明 } ``` ## 示例代码 ```js var LBCast = api.require('lBCast'); LBCast.setVolume({ volume: 50 }, function(ret, err) { if (ret.status) { alert('成功'); } else { alert(ret.msg); } }); ``` ## 可用性 iOS系统,Android系统 可提供的1.0.4及更高版本
# **pauseOrResume** 暂停或继续 pauseOrResume(callback(ret, err)) ## callback(ret, err) ret: - 类型:JSON 对象 - 内部字段: ```js { result: true, //布尔型;true||false msg: //字符串;内容说明 } ``` ## 示例代码 ```js var LBCast = api.require('lBCast'); LBCast.pauseOrResume(function(ret, err) { if (ret.result) { alert(JSON.stringify(ret)); } else { alert(ret.msg); } }); ``` ## 可用性 iOS系统,Android系统 可提供的1.0.0及更高版本
# **setSeekTo** 设置播放进度 setSeekTo({params}, callback(ret, err)) ## params seekTime: - 类型:数字类型 - 描述:(可选项)播放进度位置(秒)。 - 默认值:0 ## callback(ret, err) ret: - 类型:JSON 对象 - 内部字段: ```js { result: true, //布尔型;true||false msg: //字符串;内容说明 } ``` ## 示例代码 ```js var LBCast = api.require('lBCast'); LBCast.setSeekTo({ seekTime: 30 }, function(ret, err) { if (ret.result) { alert(JSON.stringify(ret)); } else { alert(ret.msg); } }); ``` ## 可用性 iOS系统,Android系统 可提供的1.0.0及更高版本
# **canBarrage** 是否支持弹幕功能 canBarrage(callback(ret, err)) ## callback(ret, err) ret: - 类型:JSON 对象 - 内部字段: ```js { result: true, //布尔型;true||false msg: //字符串;内容说明 } ``` ## 示例代码 ```js var LBCast = api.require('lBCast'); LBCast.canBarrage(function(ret, err) { if (ret.result) { alert(JSON.stringify(ret)); } else { alert(ret.msg); } }); ``` ## 可用性 iOS系统 可提供的1.0.0及更高版本
# **canPushBarrageNow** 现在是否可以发送弹幕 canPushBarrageNow(callback(ret, err)) ## callback(ret, err) ret: - 类型:JSON 对象 - 内部字段: ```js { result: true, //布尔型;true||false msg: //字符串;内容说明 } ``` ## 示例代码 ```js var LBCast = api.require('lBCast'); LBCast.canPushBarrageNow(function(ret, err) { if (ret.result) { alert(JSON.stringify(ret)); } else { alert(ret.msg); } }); ``` ## 可用性 iOS系统 可提供的1.0.0及更高版本
# **pushBarrage** 发送弹幕 pushBarrage({params},callback(ret, err)) ## params text: - 类型:字符串 - 描述:弹幕内容 textColor: - 类型:字符串 - 描述:(非必须)弹幕文字颜色 - 默认值:#fff textSize: - 类型:数字 - 描述:(非必须)字体大小 - 默认值:16 ## callback(ret, err) ret: - 类型:JSON 对象 - 内部字段: ```js { result: true, //布尔型;true||false msg: //字符串;内容说明 } ``` ## 示例代码 ```js var LBCast = api.require('lBCast'); LBCast.pushBarrage({ text:'', textColor:'#333', textSize:18 },function(ret, err) { if (ret.result) { alert(JSON.stringify(ret)); } else { alert(ret.msg); } }); ``` ## 可用性 iOS系统,Android系统 可提供的1.0.0及更高版本
# **startMirror** 开始投屏,由于系统原因,此方法只支持Android系统,IOS系统需要从系统控制中心打开/关闭屏幕镜像 startMirror(callback(ret, err)) ## callback(ret, err) ret: - 类型:JSON 对象 - 内部字段: ```js { result: true, //布尔型;true||false msg: //字符串;内容说明 } ``` ## 示例代码 ```js var LBCast = api.require('lBCast'); LBCast.startMirror(function(ret, err) { if (ret.result) { alert(JSON.stringify(ret)); } else { alert(ret.msg); } }); ``` ## 可用性 Android系统 可提供的1.0.0及更高版本
# **stopMirror** 结束投屏,由于系统原因,此方法只支持Android系统,IOS系统需要从系统控制中心打开/关闭屏幕镜像 stopMirror(callback(ret, err)) ## callback(ret, err) ret: - 类型:JSON 对象 - 内部字段: ```js { result: true, //布尔型;true||false msg: //字符串;内容说明 } ``` ## 示例代码 ```js var LBCast = api.require('lBCast'); LBCast.stopMirror(function(ret, err) { if (ret.result) { alert(JSON.stringify(ret)); } else { alert(ret.msg); } }); ``` ## 可用性 Android系统 可提供的1.0.0及更高版本