leCloudLive

来自于:开发者立即使用

createPushUrl customInitLive customStartPushUrl customPuaselive customStoplive setTorchOpenState setMute setCamare setFilter

概述

乐视云直播接入

开发者在使用leCloudLive模块时,需要开发者自行到乐视云申请相应的AppKey。

申请步骤

1、登录乐视云帐号

访问微视频云控制台页面,若您未登录账号,将会进入账号登录页面, 如下图:

描述

2、进入帐号管理,进行资质认证,具体如下图: 描述

3、认证通过后,点击我的服务,进入“移动直播”管理平台创建应用 点击”创建应用”,系统将为您弹出需要填写应用的相关信息,具体如下图: 描述

4、获取AppKey和推流域名、播放域名

注册成功后,在应用管理里面“密钥”处查看AppKey和推流域名、播放域名,具体如下图: 描述

5、获取用户id和私钥,用于云直播配置

注册成功后,在用户私钥里面获取用户id和私钥,具体如下图: 描述

6、视频分辨率,总码率(kbps)参考值。

信号源视频分辨率总码率(kbps)
高清19201080P5000
1280720P1800
960540P1300
960540P1300
640360P800
640360P350
标清720576P1800
720576P1300
720576P800
640480P350

7、iOS常见错误码。

错误码错误描述
-1未知错误
120打开摄像头失败(无权限)
121打开摄像头失败(参数错误)
123打开麦克风失败(无权限)
124打开麦克风失败(家长控制)
125打开闪光灯失败(没有闪光灯)
126打开闪关灯失败(设备异常)
129切换摄像头失败(设备异常)
130编码器打开失败
131网络连接失败(超时导致)
132不是标准的rtmp地址
133直播时间未到
134直播已结束
140网络断开导致推流断开
141网络较差导致推流断开
142其他错误原因
201连接服务器错误
202云直播接口错误
203云直播网络错误
204socket错误码
205RTMP错误码
206网络状态由WIFI变成移动网络

8、Android常见错误码。

错误码错误描述
-1未知错误
100RMTP链接建立不成功
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
  • 配置示例:
  1. <feature name="leCloudLive">
  2. <param name="mpushDomain" value="推流域名"/>
  3. <param name="mpullDomain" value="播放域名"/>
  4. <param name="appKey" value="乐视云appKey"/>
  5. <param name="userId" value="用户id"/>
  6. <param name="secretKey" value="私钥"/>
  7. </feature>
  • 字段描述: mpushDomain:(必须配置)推流域名,在乐视官方后台移动直播所创建的应用中获取推流域名。 mpullDomain:(必须配置)播放域名,在乐视官方后台移动直播所创建的应用中获取播放域名。 appKey:(必须配置)签名密钥,在乐视官方后台移动直播所创建的应用中获取签名密钥。 userId:(必须配置)用户id,在乐视官方后台用户中心中获取用户ID。 secretKey:(必须配置)私钥,在乐视官方后台用户中心中获取私钥。

移动直播顺序 1、生成推流端和播放端地址:createPushUrl

2、初始化移动直播试图预览:customInitLive

3、开始移动直播:customStartPushUrl

模块接口

createPushUrl

生成推流、播放地址

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

params

streamName:

  • 类型:字符串
  • 描述:(必输项)申请直播流名称。流名称可以是任意数字、字母的组合

示例代码

  1. var demo = api.require('leCloudLive');
  2. demo.createPushUrl({
  3. streamName: 'testpush'
  4. },
  5. function(ret, err) {
  6. alert(JSON.stringify(ret) + " " + JSON.stringify(err));
  7. });

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. status: true,//布尔型;true||false
  3. pushUrl: "",//推流地址
  4. playUrl: "" //播放地址
  5. }

err:

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

可用性

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对象
  • 内部字段:
  1. {
  2. status: true, //布尔型;true||false
  3. }

示例代码

  1. var demo = api.require('leCloudLive');
  2. demo.customInitLive({
  3. x: 0,
  4. y: 0,
  5. h: 250,
  6. fixedOn: api.frameName,
  7. fixed: true,
  8. previewWidth: 640,
  9. previewHeight: 480,
  10. isLandscape: false,
  11. filterName : "美颜",
  12. },
  13. function(ret, err) {});

可用性

iOS、Android系统

可提供的1.0.0及更高版本

customStartPushUrl

开始移动直播

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

params

pushUrl:

  • 类型:字符串类型
  • 描述:(必填项)直播推流地址;

callback(ret, err)

ret:

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

err:

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

示例代码

  1. var demo = api.require('leCloudLive');
  2. demo.customStartPushUrl({
  3. pushUrl: "rtmp://12345.mpush.live.lecloud.com/live/testpush?&tm=20160801130626&sign=5086bc02a26eeffa84ad8de54b6f003"
  4. },
  5. function(ret, err) {});

可用性

iOS、Android系统

可提供的1.0.0及更高版本

customPuaselive

暂停直播

customPuaselive(callback(ret, err))

示例代码

  1. var obj = api.require('leCloudLive');
  2. obj.customPuaselive(function(ret, err) {
  3. alert(JSON.stringify(ret));
  4. });

可用性

iOS、Android系统

可提供的1.0.0及更高版本

customStoplive

停止直播

customStoplive(callback(ret, err))

示例代码

  1. var obj = api.require('leCloudLive');
  2. obj.customStoplive(function(ret, err) {
  3. alert(JSON.stringify(ret));
  4. });

可用性

iOS、Android系统

可提供的1.0.0及更高版本

setTorchOpenState

闪光灯

setTorchOpenState(callback(ret, err))

示例代码

  1. var obj = api.require('leCloudLive');
  2. obj.setTorchOpenState(function(ret, err) {
  3. alert(JSON.stringify(ret));
  4. });

可用性

iOS、Android系统

可提供的1.0.0及更高版本

setMute

静音

setMute(callback(ret, err))

示例代码

  1. var obj = api.require('leCloudLive');
  2. obj.setMute(function(ret, err) {
  3. alert(JSON.stringify(ret));
  4. });

可用性

iOS、Android系统

可提供的1.0.0及更高版本

setCamare

摄像头

setCamare(callback(ret, err))

示例代码

  1. var obj = api.require('leCloudLive');
  2. obj.setCamare(function(ret, err) {
  3. alert(JSON.stringify(ret));
  4. });

可用性

iOS、Android系统

可提供的1.0.0及更高版本

setFilter

直播初始化

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

params

filterName:

  • 类型:字符串
  • 描述:(可选项)滤镜参数:美颜 温暖 平静 浪漫 正常。
  • 默认值:正常

callback(ret, err)

ret:

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

示例代码

  1. var demo = api.require('leCloudLive');
  2. demo.setFilter({
  3. filterName : "平静" // 美颜 温暖 平静 浪漫 正常
  4. },
  5. function(ret, err) {});

可用性

iOS、Android系统

可提供的1.0.0及更高版本