leCast

来自于:开发者立即使用

initLeCast browse stopBrowse connect QRconnect pinConnect disConnect getConnectLelinkServiceInfos startMirror stopMirror play pause resume stop seekTo addVolume subVolume isSupportDanmuku setInteractiveAdListener onInteractiveAdShow onInteractiveAdClosed

概述

乐播简介

乐播投屏,是一款移动设备(手机/平板等)连接大屏终端(电视、盒子、投影、VR等智能设备)的多屏互动工具,可以实现将移动设备的内容无线投送(可镜像)到大屏终端,达到手机操控电视玩游戏(不改变游戏操作体验)、看电影、听音乐、分享照片等,适合玩大屏游戏、开会办公、视频推送、影音共享、亲子互动等场景 leCast 模块概述

本模块封装了乐播开放平台的原生 SDK,集成了跨屏游戏 高清、实时地将手游投到电视上,体验大屏手游的快感和刺激感。 会议演示 一部手机随时召集会议,让会议操作流程简化,效率更高。 视频点播 将手机上的任意影像投在电视屏上,与家人一起互动。 音乐共享 不需要华丽音响,就可以把无线音乐响彻整个house。 图片分享 朋友聚会聊天,将手机中的照片投到大屏,和朋友们分享照片故事。 车载导航 将手机中的信息传达到导航屏上,方便操控,安全驾驶。 电脑投屏 将电脑屏幕,电脑文档投屏至会议室大屏幕中,投屏开会或演示。

模块使用攻略

使用之前须从乐播开放平台申请开发者账号并创建应用,获取 Key 和 secret。leCast 模块优化了 乐播 模块的投屏、镜像功能。**

乐播平台接入流程参考[乐播平台接入文档]

使用此模块之前建议先配置 config.xml 文件,配置完毕,需通过云端编译生效,配置方法如下:

  • 名称:leCast
  • 参数:lecastKey、lecastSecret、ios_lecastKey、ios_lecastSecret
  • 配置示例:
  1. <feature name="leCast">
  2. <param name="lecastKey" value="10723" />
  3. <param name="lecastSecret" value="365538c26afc0c8ecfceb94d10171a9a" />
  4. <param name="ios_lecastKey" value="11508" />
  5. <param name="ios_lecastSecret" value="9953428d6a3ca4a842c641814c28c7b3" />
  6. </feature>

Android 系统平台上需注意事项请参考乐播集成注意事项

实例widget下载地址

模块接口

initLeCast

initLeCast(); //模块初始化方法,必须在所有方法调用前调用

示例代码

  1. var leCastDemo = api.require('leCast');
  2. leCastDemo.initLeCast();

可用性

iOS系统,Android系统

可提供的4.0.0及更高版本

browse

搜索附近的接收端设备

browse({params}, callback(ret, err))

params

var param = {browseType:0};

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true //布尔型;true||false
  3. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. deviceList:设备列表数组
  3. name:接收端设备名称
  4. ip:接收端ip,以下大部分接口用ip代表一个接收端设备
  5. isOnLine:代表设备是否在线(指设备是否能连接到); 1为在线,0为不在线
  6. isConnect:代表该设备是否已经连接。 1为已连接,0为没连接。
  7. uid:设备的id
  8. type:设备类型
  9. }

示例代码

  1. var uid1=""
  2. var leCastDemo = api.require('leCast');
  3. leCastDemo.browse(param, function(ret, err){
  4. console.log(JSON.stringify(ret));
  5. uid1=(ret.deviceList)[0]["ip"];
  6. });

可用性

iOS系统,Android系统

可提供的4.0.0及更高版本

stopBrowse

停止搜索附近的接收端设备 因为browse方法会不停的搜索,所以要在适当的时候调用stopBrowse方法

stopBrowse(callback(ret, err))

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. result: 1 //数字型;1||0
  3. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. result: 0 //数字类型;
  3. //0(未知错误)
  4. //1(成功)
  5. }

示例代码

  1. var leCastDemo = api.require('leCast');
  2. leCastDemo.stopBrowse( function(ret, err){
  3. alert(JSON.stringify(ret));
  4. });

可用性

iOS系统,Android系统

可提供的4.0.0及更高版本

connect

通过ip连接接收端设备

connect({params}, callback(ret, err))

params

serviceInfoIp:

  • 类型:字符串
  • 描述:传入ip。 var param = {serviceInfoIp:uid1};//传入Ip

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true //布尔型;true||false
  3. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. 返回字段说明:
  2. {result:1
  3. isPin:是否是pin码连接
  4. deviceName:设备名称
  5. type:设备类型
  6. deviceUid:设备uid
  7. deviceIp:设备ip
  8. canPlayLocalVideo:是否能播放本地视频
  9. canPlayLocalPhoto:是否能播放本地图片
  10. canPlayLocalAudio:是否能播放本地音乐
  11. canPlayOnlieVideo:是否能播放网络视频
  12. canPlayOnliePhoto:是否能播放网络图片
  13. canPlayOnlieAudio:是否能播放网络音乐
  14. msg:错误信息(result0时有),分别是以下其中之一:连接失败,等待确认,连接拒绝,连接超时,连接黑名单
  15. }

示例代码

  1. var leCastDemo = api.require('leCast');
  2. var param = {serviceInfoIp:uid1};//传入Ip
  3. leCastDemo.connect(param, function(ret, err){
  4. alert(JSON.stringify(ret));
  5. });

补充说明

通过ip连接接收端设备,必须先调用browse方法获取ip,该方法为耗时方法(需要一定时间才能回调)

可用性

iOS系统,Android系统

可提供的4.0.0及更高版本

QRconnect

通过二维码连接接收端设备

QRconnect({params}, callback(ret, err))

params

qrCode:

  • 类型:字符串
  • 描述:(必填项)从二维码扫描出来的字符串,开发者可用apicloud上任意一个扫描二维码的模块扫描二维码,将扫描结果传入该字段。

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true //布尔型;true||false
  3. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. 返回字段说明:
  2. {result:1
  3. isPin:是否是pin码连接
  4. deviceName:设备名称
  5. type:设备类型
  6. deviceUid:设备uid
  7. deviceIp:设备ip
  8. canPlayLocalVideo:是否能播放本地视频
  9. canPlayLocalPhoto:是否能播放本地图片
  10. canPlayLocalAudio:是否能播放本地音乐
  11. canPlayOnlieVideo:是否能播放网络视频
  12. canPlayOnliePhoto:是否能播放网络图片
  13. canPlayOnlieAudio:是否能播放网络音乐
  14. msg:错误信息(result0时有),分别是以下其中之一:连接失败,等待确认,连接拒绝,连接超时,连接黑名单
  15. }

示例代码

  1. var leCastDemo = api.require('leCast');
  2. var param = {qrCode:"http://sl.hpplay.cn/c75bG"};//传入二维码扫描结果 http://sl.hpplay.cn/c75bG
  3. leCastDemo.QRconnect(param,function(ret, err){//连接回调
  4. alert(JSON.stringify(ret));
  5. uid1=ret.deviceIp;//保存已连接的ip,断开时用到
  6. });

补充说明

通过二维码连接接收端设备,该方法为耗时方法(需要一定时间才能回调)

可用性

iOS系统,Android系统

可提供的4.0.0及更高版本

pinConnect

通过pin码连接

pinConnect({params}, callback(ret, err))

params

pinCode:

  • 类型:字符串
  • 描述:必填项,pin码是乐播的概念,为9位字符串。

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true //布尔型;true||false
  3. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. 返回字段说明:
  2. {result:1
  3. isPin:是否是pin码连接
  4. deviceName:设备名称
  5. type:设备类型
  6. deviceUid:设备uid
  7. canPlayLocalVideo:是否能播放本地视频
  8. canPlayLocalPhoto:是否能播放本地图片
  9. canPlayLocalAudio:是否能播放本地音乐
  10. canPlayOnlieVideo:是否能播放网络视频
  11. canPlayOnliePhoto:是否能播放网络图片
  12. canPlayOnlieAudio:是否能播放网络音乐
  13. msg:错误信息(result0时有),分别是以下其中之一:连接失败,等待确认,连接拒绝,连接超时,连接黑名单
  14. }

示例代码

  1. var leCastDemo = api.require('leCast');
  2. var param = {pinCode:"xxxxxxxx"};//传入pin码
  3. leCastDemo.pinConnect(param,function(ret, err){//连接回调
  4. alert(JSON.stringify(ret));
  5. uid1=ret.deviceIp;//保存已连接的ip,断开时用到
  6. });

可用性

iOS系统,Android系统

可提供的4.0.0及更高版本

disConnect

断开连接

disConnect({params}, callback(ret, err))

params

serviceInfoIp:

  • 类型:字符串
  • 描述:必填项,连接时用的ip。

callback(ret, err)

ret:

  • 类型:JSON 对象
  1. 返回字段说明:
  2. {result:1
  3. isPin:是否是pin码连接
  4. deviceName:设备名称
  5. deviceUid:设备uid
  6. msg:错误信息(result0时有)
  7. }

示例代码

  1. var leCastDemo = api.require('leCast');
  2. var param = {serviceInfoIp:uid1};//传入Ip
  3. leCastDemo.disConnect(param,function(ret, err){
  4. alert(JSON.stringify(ret));
  5. });

可用性

iOS系统,Android系统

可提供的4.0.0及更高版本

getConnectLelinkServiceInfos

获取已经连接的设备

getConnectLelinkServiceInfos(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. 返回字段说明:
  2. {result:1
  3. deviceList:[{"name":"xxx"}]
  4. }
  5. deviceList:设备列表数组
  6. name:接收端设备名称
  7. ip:接收端ip
  8. isOnLine:代表设备是否在线(指设备是否能连接到); 1为在线,0为不在线
  9. isConnect:代表该设备是否已经连接。 1为已连接,0为没连接。
  10. uid:设备的id
  11. type:设备类型

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. }

示例代码

  1. var leCastDemo = api.require('leCast');
  2. leCastDemo.getConnectLelinkServiceInfos( function(ret, err){
  3. alert(JSON.stringify(ret));
  4. });

可用性

iOS系统,Android系统

可提供的4.0.0及更高版本

startMirror

开始镜像,该方法为耗时方法(需要一定时间才能回调),调用该方法前必须先连接设备

startMirror({params}, callback(ret, err))

params

connectedTargetIp:必填项,已连接的设备的ip

resolutionLevel:分辨率:选填项,数字型,1高,2中,3自动,默认2

bitrateLevel:比特率:选填项,数字型,4高,5中,6低,默认5

isAudioEnnable:是否开启声音,选填项,数字型,1开启,0关闭,默认0

screenCode:字符串,投屏码,有些设备需要投屏码才能播放,没有则不传,或传””

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. result:1
  3. msg:错误信息(result0时有)
  4. }

示例代码

  1. var leCastDemo = api.require('leCast');
  2. var param = {
  3. connectedTargetIp:uid1,//已连接的设备的ip
  4. resolutionLevel:1,//分辨率:数字型,1高,2中,3自动
  5. bitrateLevel:5,//比特率:数字型,4高,5中,6低
  6. isAudioEnnable:1,//数字型,1开启,0关闭
  7. screenCode:"",//如果接收端需要投屏码请加上该字段
  8. };
  9. leCastDemo.startMirror(param,function(ret, err){
  10. alert(JSON.stringify(ret));
  11. });

可用性

iOS系统,Android系统

可提供的4.0.0及更高版本

stopMirror

结束镜像

stopMirror(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. result: 1, //数字型;1||0
  3. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. result: 0, //数字型;1||0
  3. }

示例代码

  1. var leCastDemo = api.require('leCast');
  2. leCastDemo.stopMirror(function(ret, err){
  3. alert(JSON.stringify(ret));
  4. });

可用性

iOS系统,Android系统

可提供的4.0.0及更高版本

play

播放媒体,该方法为耗时方法(需要一定时间才能回调)

play({params}, callback(ret, err))

params

directPlay:1,//是否直接播放,1无需连接设备直接播放,但需要先搜索设备,0需连接设备(默认) connectedTargetIp:uid1,//直接播放的设备的ip(需要先搜索获取),directPlay为1时该字段必须要传 screenCode:””,//有些屏幕需要投屏码的就要传,可选项 mediaType:2,//媒体类型:数字型,1音乐,2视频,3图片,必填 localUrl:””,//本地媒体路径,支持widget://,fs://,安卓系统标准文件路径 netUrl:NET_VIDEO_URL,//网络文件路径,http://… //以上这两个url必须要传一个,两个都传时只认localUrl

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. result:0//为0时为调用方法或逻辑错误,相应的有msg字段信息提示
  3. 以下是播放中(包括镜像相关的状态)各个状态的返回值描述,
  4. 左边已status字段返回,右边以msg返回
  5. 1:正在加载
  6. 2:正在播放
  7. 3:暂停播放
  8. 4:播放完成
  9. 5:播放结束
  10. 6:设置进度完成
  11. 7:文件不存在
  12. 8IM TV不在线
  13. 9:图片错误
  14. 10IM不支持的媒体类型
  15. 11:未知
  16. 12:不支持镜像
  17. 13:镜像权限拒绝
  18. 14:设备不支持镜像
  19. 15:请输入投屏码
  20. 16:获取镜像信息出错
  21. 17:获取镜像端口出错
  22. 18:请输入投屏码
  23. 19:播放无响应
  24. 20 退出播放无响应
  25. 21:暂停无响应
  26. 22:请输入投屏码
  27. 23:恢复无响应
  28. 24:音量变化成功
  29. 25:播放进度已更新
  30. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. result: 0 //数字类型;
  3. //错误码:0
  4. }

示例代码

  1. var leCastDemo = api.require('leCast');
  2. var param = {
  3. directPlay:0,//是否直接播放,1无需连接设备直接播放(但需要先搜索),0需连接设备(默认)
  4. connectedTargetIp:uid1,//直接播放的设备的ip(需要先搜索获取),directPlay为1时该字段必须要传
  5. screenCode:"237-746-544",//有些屏幕需要投屏码的就要传,可选项
  6. mediaType:2,//媒体类型:数字型,1音乐,2视频,3图片
  7. localUrl:"",//本地媒体路径,支持fs://,安卓系统标准文件路径
  8. netUrl:NET_VIDEO_URL,//网络文件路径,http://...
  9. //这两个url必须要传一个,两个都传时只认localUrl
  10. };
  11. leCastDemo.play(param,function(ret, err){
  12. if(ret.status!=25){//播放进度已更新不弹窗,避免弹窗过多
  13. alert(JSON.stringify(ret));
  14. }
  15. });

补充说明

该方法为耗时方法(需要一定时间才能回调)

可用性

iOS系统,Android系统

可提供的4.0.0及更高版本

pause

暂停播放媒体,返回值参考play方法

pause(callback(ret, err))

callback(ret, err)

ret:# 返回值参考play方法

示例代码

  1. var leCastDemo = api.require('leCast');
  2. leCastDemo.pause(function(ret, err){
  3. alert(JSON.stringify(ret));
  4. });

可用性

iOS系统,Android系统

可提供的4.0.0及更高版本

shareMutableImg

恢复播放媒体,返回值参考play方法

resume(callback(ret, err))

示例代码

  1. var leCastDemo = api.require('leCast');
  2. leCastDemo.resume(function(ret, err){
  3. alert(JSON.stringify(ret));
  4. });

可用性

Android系统

可提供的4.0.0及更高版本

stop

停止播放媒体,返回值参考play方法

stop(callback(ret))

callback

返回值参考play方法

示例代码

  1. var leCastDemo = api.require('leCast');
  2. leCastDemo.stop(function(ret, err){
  3. alert(JSON.stringify(ret));
  4. });

可用性

Android系统

可提供的1.0.6及更高版本

seekTo

播放进度控制,进度,数字型,单位为秒

startMirror({params}, callback(ret, err))

params

progress:10,//进度,数字型,单位为秒

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. result:1
  3. msg:错误信息(result0时有)
  4. }

示例代码

  1. var leCastDemo = api.require('leCast');
  2. leCastDemo.seekTo(param,function(ret, err){
  3. alert(JSON.stringify(ret));
  4. });

可用性

iOS系统,Android系统

可提供的4.0.0及更高版本

addVolume

增加音量

addVolume(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. result:1
  3. msg:错误信息(result0时有)
  4. }

示例代码

  1. var leCastDemo = api.require('leCast');
  2. leCastDemo.addVolume(function(ret, err){
  3. alert(JSON.stringify(ret));
  4. });

可用性

iOS系统,Android系统

可提供的4.0.0及更高版本

subVolume

减少音量

subVolume(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. result:1
  3. msg:错误信息(result0时有)
  4. }

示例代码

  1. var leCastDemo = api.require('leCast');
  2. leCastDemo.subVolume(function(ret, err){
  3. alert(JSON.stringify(ret));
  4. });

可用性

iOS系统,Android系统

可提供的4.0.0及更高版本

isSupportDanmuku

是否支持弹幕

isSupportDanmuku(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. result:1
  3. msg:错误信息(result0时有)
  4. }

示例代码

  1. var leCastDemo = api.require('leCast');
  2. leCastDemo.isSupportDanmuku(function(ret, err){
  3. alert(JSON.stringify(ret));//返回值result数字型,1支持,0不支持
  4. });

可用性

iOS系统,Android系统

可提供的4.0.0及更高版本

setInteractiveAdListener

设置广告监听

setInteractiveAdListener(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. result:1
  3. msg:错误信息(result0时有)
  4. }

示例代码

  1. var leCastDemo = api.require('leCast');
  2. leCastDemo.setInteractiveAdListener(function(ret, err){
  3. alert(JSON.stringify(ret));//返回值result数字型,1支持,0不支持
  4. });

可用性

iOS系统,Android系统

可提供的4.0.0及更高版本

onInteractiveAdShow

广告播放上报

onInteractiveAdShow({params}, callback(ret, err))

params

status:1,//上报状态值,数字型,1成功,0失败

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. result:1
  3. msg:错误信息(result0时有)
  4. }

示例代码

  1. var leCastDemo = api.require('leCast');
  2. var param = {
  3. status:1,//上报状态值,数字型,1成功,0失败
  4. };
  5. leCastDemo.onInteractiveAdShow(param,function(ret, err){
  6. alert(JSON.stringify(ret));//1上报成功
  7. });

可用性

iOS系统,Android系统 可提供的4.0.0及更高版本

onInteractiveAdClosed

广告播放完成上报

onInteractiveAdClosed({params}, callback(ret, err))

params

status:1,//上报状态值,数字型,1成功,0失败 duration:5//广告播放时长,应该是秒为单位

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. result:1
  3. msg:错误信息(result0时有)
  4. }

示例代码

  1. var leCastDemo = api.require('leCast');
  2. var param = {
  3. status:1,//上报状态值,数字型,1成功,0失败
  4. duration:5//广告播放时长,应该是秒为单位
  5. };
  6. leCastDemo.onInteractiveAdClosed(param,function(ret, err){
  7. alert(JSON.stringify(ret));//1上报成功
  8. });

可用性

iOS系统,Android系统

可提供的4.0.0及更高版本