leCloudLive
来自于:开发者立即使用
createPushUrl customInitLive customStartPushUrl customPuaselive customStoplive setTorchOpenState setMute setCamare setFilter
概述
乐视云直播接入
开发者在使用leCloudLive模块时,需要开发者自行到乐视云申请相应的AppKey。
申请步骤
1、登录乐视云帐号
访问微视频云控制台页面,若您未登录账号,将会进入账号登录页面, 如下图:
2、进入帐号管理,进行资质认证,具体如下图:
3、认证通过后,点击我的服务,进入“移动直播”管理平台创建应用 点击”创建应用”,系统将为您弹出需要填写应用的相关信息,具体如下图:
4、获取AppKey和推流域名、播放域名
注册成功后,在应用管理里面“密钥”处查看AppKey和推流域名、播放域名,具体如下图:
5、获取用户id和私钥,用于云直播配置
注册成功后,在用户私钥里面获取用户id和私钥,具体如下图:
6、视频分辨率,总码率(kbps)参考值。
信号源 | 视频分辨率 | 总码率(kbps) |
---|---|---|
高清 | 19201080P | 5000 |
1280720P | 1800 | |
960540P | 1300 | |
960540P | 1300 | |
640360P | 800 | |
640360P | 350 | |
标清 | 720576P | 1800 |
720576P | 1300 | |
720576P | 800 | |
640480P | 350 |
7、iOS常见错误码。
错误码 | 错误描述 |
---|---|
-1 | 未知错误 |
120 | 打开摄像头失败(无权限) |
121 | 打开摄像头失败(参数错误) |
123 | 打开麦克风失败(无权限) |
124 | 打开麦克风失败(家长控制) |
125 | 打开闪光灯失败(没有闪光灯) |
126 | 打开闪关灯失败(设备异常) |
129 | 切换摄像头失败(设备异常) |
130 | 编码器打开失败 |
131 | 网络连接失败(超时导致) |
132 | 不是标准的rtmp地址 |
133 | 直播时间未到 |
134 | 直播已结束 |
140 | 网络断开导致推流断开 |
141 | 网络较差导致推流断开 |
142 | 其他错误原因 |
201 | 连接服务器错误 |
202 | 云直播接口错误 |
203 | 云直播网络错误 |
204 | socket错误码 |
205 | RTMP错误码 |
206 | 网络状态由WIFI变成移动网络 |
8、Android常见错误码。
错误码 | 错误描述 |
---|---|
-1 | 未知错误 |
100 | RMTP链接建立不成功 |
101 | 推流连接成功:只有当连接成功以后才能开始推流 |
102 | 推流失败,原因:网络较差,编码出错,推流崩溃,第一针数据发送失败…等等各种原因导致 |
104 | 第一帧数据发送成功,推流成功的标志 |
107 | 视频出现丢帧现象。如果一分钟丢帧次数大于5次,导致声音跳动:可以对网络进行判定 |
108 | 音频出现丢帧现象,如果一分钟丢帧次数大于5次,导致画面跳动:可以对网络进行判定 |
110 | 推流已成功停止 |
111 | 可以再次切换摄像头了:缩短切换摄像头需要10延时的问题,可以通过这个事件判断是否可以再次切换摄像头 |
112 | 摄像头操作异常 |
113 | 麦克风操作异常 |
114 | 成功打开摄像头 |
115 | 成功打开麦克风 |
116 | 闪光灯操作异常 |
117 | 成功打开闪关灯 |
1001 | 直播未开始 |
1003 | 当前直播剩余分钟数 |
1004 | 直播已结束(如果活动不可用,则会回调这个信息) |
1005 | 未开启/开启直播录制功能 |
1006 | 直播已结束(如果推流完成,则会回调这个信息) |
1007 | 其他错误信息 |
模块使用攻略
使用此模块之前必须先配置 [config.xml] 文件,配置完毕,需通过云端编译生效,配置方法如下:
- 名称:leCloudLive
- 参数:mpushDomain、mpullDomain、appKey、userId、secretKey
- 配置示例:
<feature name="leCloudLive">
<param name="mpushDomain" value="推流域名"/>
<param name="mpullDomain" value="播放域名"/>
<param name="appKey" value="乐视云appKey"/>
<param name="userId" value="用户id"/>
<param name="secretKey" value="私钥"/>
</feature>
- 字段描述: mpushDomain:(必须配置)推流域名,在乐视官方后台移动直播所创建的应用中获取推流域名。 mpullDomain:(必须配置)播放域名,在乐视官方后台移动直播所创建的应用中获取播放域名。 appKey:(必须配置)签名密钥,在乐视官方后台移动直播所创建的应用中获取签名密钥。 userId:(必须配置)用户id,在乐视官方后台用户中心中获取用户ID。 secretKey:(必须配置)私钥,在乐视官方后台用户中心中获取私钥。
移动直播顺序 1、生成推流端和播放端地址:createPushUrl
2、初始化移动直播试图预览:customInitLive
3、开始移动直播:customStartPushUrl
模块接口
createPushUrl
生成推流、播放地址
createPushUrl({params}, callback(ret, err))
params
streamName:
- 类型:字符串
- 描述:(必输项)申请直播流名称。流名称可以是任意数字、字母的组合
示例代码
var demo = api.require('leCloudLive');
demo.createPushUrl({
streamName: 'testpush'
},
function(ret, err) {
alert(JSON.stringify(ret) + " " + JSON.stringify(err));
});
callback(ret, err)
ret:
- 类型:JSON对象
- 内部字段:
{
status: true,//布尔型;true||false
pushUrl: "",//推流地址
playUrl: "" //播放地址
}
err:
- 类型:JSON对象
- 内部字段:
{
msg: ""
}
可用性
iOS、Android系统
可提供的1.0.0及更高版本
customInitLive
直播初始化
customInitLive({params}, callback(ret, err))
params
x:
- 类型:数字类型
- 描述:(必填项)模块左上角的 x 坐标(相对于所属的 Window 或 Frame);
- 默认值:0
y:
- 类型:数字类型
- 描述:(必填项)模块左上角的 y 坐标(相对于所属的 Window 或 Frame);默认:0
- 默认值:0
w:
- 类型:数字类型
- 描述:(可选项)模块的宽度;默认:所属的 Window 或 Frame 的宽度
h:
- 类型:数字类型
- 描述:(可选项)模块的高度;默认:所属的 Window 或 Frame 的高度
- 默认值:300
previewWidth:
- 类型:数字类型
- 描述:(可选项)摄像头预览分辨率的宽。
previewHeight:
- 类型:数字类型
- 描述:(可选项)摄像头预览分辨率的高。
frameRate:
- 类型:数字类型
- 描述:(可选项)推流的每秒的视频帧数。
- 默认值:24
bitrate:
- 类型:数字类型
- 描述:(可选项)推流的视频流比特率。
- 默认值:1000000
fixedOn:
- 类型:字符串
- 描述:(可选项)模块所属 Frame 的名字,若不传则模块归属于当前 Window
fixed:
- 类型:布尔
- 描述:(可选项)模块是否随所属 Window 或 Frame 滚动
- 默认值:true(不随之滚动)
isLandscape:
- 类型:布尔
- 描述:(可选项)是否横屏直播
- 默认值:false
isBackCamare:
- 类型:布尔
- 描述:(可选项)是否后置摄像头(true:后置|false:前置)
- 默认值:false
filterName:
- 类型:字符串
- 描述:(可选项)滤镜参数:美颜 温暖 平静 浪漫 正常。
- 默认值:正常
callback(ret, err)
ret:
- 类型:JSON对象
- 内部字段:
{
status: true, //布尔型;true||false
}
示例代码
var demo = api.require('leCloudLive');
demo.customInitLive({
x: 0,
y: 0,
h: 250,
fixedOn: api.frameName,
fixed: true,
previewWidth: 640,
previewHeight: 480,
isLandscape: false,
filterName : "美颜",
},
function(ret, err) {});
可用性
iOS、Android系统
可提供的1.0.0及更高版本
customStartPushUrl
开始移动直播
customStartPushUrl({params}, callback(ret, err))
params
pushUrl:
- 类型:字符串类型
- 描述:(必填项)直播推流地址;
callback(ret, err)
ret:
- 类型:JSON对象
- 内部字段:
{
status: true //布尔型;true||false
}
err:
- 类型:JSON对象
- 内部字段:
{
msg: ""
}
示例代码
var demo = api.require('leCloudLive');
demo.customStartPushUrl({
pushUrl: "rtmp://12345.mpush.live.lecloud.com/live/testpush?&tm=20160801130626&sign=5086bc02a26eeffa84ad8de54b6f003"
},
function(ret, err) {});
可用性
iOS、Android系统
可提供的1.0.0及更高版本
customPuaselive
暂停直播
customPuaselive(callback(ret, err))
示例代码
var obj = api.require('leCloudLive');
obj.customPuaselive(function(ret, err) {
alert(JSON.stringify(ret));
});
可用性
iOS、Android系统
可提供的1.0.0及更高版本
customStoplive
停止直播
customStoplive(callback(ret, err))
示例代码
var obj = api.require('leCloudLive');
obj.customStoplive(function(ret, err) {
alert(JSON.stringify(ret));
});
可用性
iOS、Android系统
可提供的1.0.0及更高版本
setTorchOpenState
闪光灯
setTorchOpenState(callback(ret, err))
示例代码
var obj = api.require('leCloudLive');
obj.setTorchOpenState(function(ret, err) {
alert(JSON.stringify(ret));
});
可用性
iOS、Android系统
可提供的1.0.0及更高版本
setMute
静音
setMute(callback(ret, err))
示例代码
var obj = api.require('leCloudLive');
obj.setMute(function(ret, err) {
alert(JSON.stringify(ret));
});
可用性
iOS、Android系统
可提供的1.0.0及更高版本
setCamare
摄像头
setCamare(callback(ret, err))
示例代码
var obj = api.require('leCloudLive');
obj.setCamare(function(ret, err) {
alert(JSON.stringify(ret));
});
可用性
iOS、Android系统
可提供的1.0.0及更高版本
setFilter
直播初始化
setFilter({params}, callback(ret, err))
params
filterName:
- 类型:字符串
- 描述:(可选项)滤镜参数:美颜 温暖 平静 浪漫 正常。
- 默认值:正常
callback(ret, err)
ret:
- 类型:JSON对象
- 内部字段:
{
status: true, //布尔型;true||false
}
示例代码
var demo = api.require('leCloudLive');
demo.setFilter({
filterName : "平静" // 美颜 温暖 平静 浪漫 正常
},
function(ret, err) {});
可用性
iOS、Android系统
可提供的1.0.0及更高版本