aliyunLive

configStream stopStream setMute setSkinValue setExposureValue destroyStream focusing

播放端(拉流)

init play stop getVideoWidth setTimeout setMuteMode setDefaultDecoder addEventListener

概述

aliyunLive 封装了阿里云视频直播的sdk,该模块包括视频流采集和视频流播放两部分。使用该模块,需要在阿里云官网注册,在控制台创建直播流,并获取播放端相关参数,详情可以参照阿里云直播官网。阿里云视频直播

不能同时添加的模块:alivcLivePusher 等同样是封装阿里云SDK的模块。

本模块封装的阿里云直播SDK为旧版本的,阿里云官方已停止更新。已将直播SDK拆分为推流和拉流两套SDK,分别对应 APICloud 平台上的模块是: 和 alivcLivePlayer。推荐开发者使用这个两个模块。

注意:该模块android版 播放器只适用于android 4.4+,推流需要 android 4.5 以上版本支持。iOS版最低版本为8.0。(iOS云编译的时候需要勾选相机和麦克风权限,并在高级设置里选择iOS版本为8.0)

configStream

配置直播流

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

rect:

  • 类型:JSON 对象
  • 描述:(可选项)视图的位置及尺寸
  • 内部字段:

url:

  • 类型:字符串
  • 描述:推流url

bitRate:

  • 类型:JSON对象
  • 描述:(可选项)码率
  • 内部字段:
  1. videoMaxBitRate: 1500 * 1000, //(可选项)数字类型;最大码率,默认“1500 * 1000”,网速变化的时候会根据这个值来提供建议码率
  2. videoMinBitRate: 400 * 1000, //(可选项)数字类型;最小码率,默认“400 * 1000”,网速变化的时候会根据这个值来提供建议码率
  3. videoBitRate: 600 * 1000, //(可选项)数字类型;当前码率,默认“600 * 1000”,在最大码率和最小码率之间
  4. audioBitRate: 64 * 1000 //(可选项)数字类型;音频码率,默认“64 * 1000”
  5. }

fps:

  • 类型:数字
  • 描述:(可选项)帧率
  • 默认:20

screenOrientation:

  • 类型:字符串
  • 描述:(可选项)屏幕方向
  • 取值范围:
    • vertical
    • horizontal
  • 默认:vertical

reconnectTimeout:

  • 类型:数字类型
  • 描述:(可选项)重连超时时长
  • 默认:5(单位:s)

videoResolution :

  • 类型: 字符串
  • 描述:(可选项)视频分辨率
  • 取值范围:
    • 240P
    • 360P
    • 480P
    • 540P
    • 720P
    • 1080P

outputResolution:

  • 类型:字符串
  • 描述:输出分辨率
  • 取值范围:
    • 240P
    • 360P
    • 480P
    • 540P
    • 720P
    • 1080P

exposure:

  • 类型:数字类型
  • 描述:曝光度(-1 或 不传表示自动曝光)
  • 取值范围:0~100
  • 默认:-1

videoPreset:

  • 类型:字符类型
  • 描述:(可选项)摄像头采集质量
  • 默认:1280*720

cameraPosition:

  • 类型:字符类型
  • 描述:(可选项)摄像头位置
  • 取值范围:
    • back
    • front
  • 默认:front

frontMirror:

  • 类型:布尔
  • 描述:(可选项)是否开启前置摄像头镜像(仅支持iOS)
  • 默认值:true

waterMarkImage:

  • 类型: json对象
  • 描述:(可选项)水印图片,不添加该参数,则无水印图片
  • 内部字段:
  1. path: '', //字符串类型,图片的路径,支持fs://,widget://
  2. location: ’‘, //字符串类型,图片位置,取值范围:rightTop,leftTop,leftBottom,rightBottom,默认leftTop
  3. maginX: 20, //数字类型,水印图片左上角顶点的x坐标,默认20
  4. maginY: 20 //数字类型,水印图片左上角顶点的y坐标,默认20

fixedOn:

  • 类型:字符串类型
  • 描述:(可选项)模块添加到指定 frame 的名字(只指 frame,传 window 无效)
  • 默认:模块依附于当前 window

fixed:

  • 类型:布尔
  • 描述:(可选项)模块是否随所属 window 或 frame 滚动
  • 默认值:true(不随之滚动)

callback

ret:

  • 类型:JSON对象
  • 描述:返回值
  1. {
  2. status : true // 预览界面是否打开成功
  3. }

示例代码

  1. var aliyunLive = api.require('aliyunLive');
  2. aliyunLive.configStream({
  3. rect: {
  4. x: 0,
  5. y: 0,
  6. w: 375,
  7. h: 667
  8. },
  9. url: '',
  10. bitRate: {
  11. videoMaxBitRate: 1500 * 1000,
  12. videoMinBitRate: 400 * 1000,
  13. videoBitRate: 600 * 1000,
  14. audioBitRate: 64 * 1000
  15. },
  16. fps: 20,
  17. screenOrientation: 'vertical',
  18. reconnectTimeout: 5,
  19. videoResolution: '720P',
  20. videoPreset: '1280*720',
  21. cameraPosition: 'front',
  22. waterMarkImage: {
  23. path: '',
  24. location: 'leftTop',
  25. maginX: 20,
  26. maginY: 20
  27. },
  28. fixed: true
  29. },function(ret) {
  30. alert(JSON.stringify(ret));
  31. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

startStream

开始推流

startStream(callback(ret, err))

callback

ret:

  • 类型:JSON对象
  • 描述:返回值
  1. {
  2. status : true // 布尔类型,是否推流成功
  3. errorMsg:'' //当status为false时返回,重连超时的错误信息
  4. }

示例代码

  1. var aliyunLive = api.require('aliyunLive');
  2. aliyunLive.startStream(function(ret){
  3. alert(JSON.stringify(ret));
  4. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

stopStream

停止推流

stopStream(callback(ret,err))

callback

ret:

  • 类型:JSON对象
  • 描述:返回值
  1. {
  2. status : true // 是否停止成功
  3. }

示例代码

  1. var aliyunLive = api.require('aliyunLive');
  2. aliyunLive.stopStream(function(ret){
  3. alert(JSON.stringify(ret));
  4. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setFlash

设置闪关灯(前置摄像头打开时不支持操作闪光灯)

setFlash({params})

params

flash:

  • 类型:字符串
  • 描述:(可选项)闪光灯类型
  • 默认值:off
  • 取值范围:
    • on:打开闪光灯
    • off:关闭闪关灯

示例代码

  1. var aliyunLive = api.require('aliyunLive');
  2. aliyunLive.setFlash({
  3. flash: 'on'
  4. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setMute

设置静音

setMute({params})

params

mute:

  • 类型:字符串
  • 描述:(可选项)静音状态
  • 默认值:off
  • 取值范围:
    • on:静音打开
    • off:静音关闭

示例代码

  1. var aliyunLive = api.require('aliyunLive');
  2. aliyunLive.setMute({
  3. mute: 'on'
  4. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setBeauty

设置美颜

setBeauty({params})

params

beauty:

  • 类型:字符串
  • 描述:(可选项)美颜状态
  • 默认值:off
  • 取值范围:
    • on:美颜打开
    • off:美颜关闭

示例代码

  1. var aliyunLive = api.require('aliyunLive');
  2. aliyunLive.setBeauty({
  3. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setSkinValue

设置美颜度

setSkinValue({params})

params

value:

  • 类型:数字
  • 描述:(可选项)美颜度
  • 默认值:1
  • 取值范围: 调节范围 0 — 1

示例代码

  1. var aliyunLive = api.require('aliyunLive');
  2. aliyunLive.setSkinValue({
  3. value:1
  4. });

可用性

iOS系统

可提供的1.0.0及更高版本

setBeautyLevel

设置美颜级别(注意:只有打开美颜是调用该方法才有效)

params

level:

  • 类型:字符串
  • 描述:(可选项)美颜级别
  • 默认值:3
  • 取值范围:1~7

示例代码

  1. var aliyunLive = api.require('aliyunLive');
  2. aliyunLive.setBeautyLevel({
  3. level:3
  4. });

可用性

Android系统

可提供的1.0.0及更高版本

setExposureValue

设置相机曝光度

setExposureValue({params})

params

value:

  • 类型:数字
  • 描述:(可选项)曝光度
  • 默认值:0
  • 取值范围: 调节范围 -10 — 10

示例代码

  1. var aliyunLive = api.require('aliyunLive');
  2. aliyunLive.setExposureValue({
  3. value:1
  4. });

可用性

iOS系统

可提供的1.0.0及更高版本

toggleCamera

转换摄像头

toggleCamera()

destroyStream

销毁推流,释放资源

destroyStream()

示例代码

  1. var aliyunLive = api.require('aliyunLive');
  2. aliyunLive.destroyStream();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

addConnectStatusListener

添加连接状态监听者

addConnectStatusListener(callback(ret,err))

callback

ret:

  • 类型:JSON对象
  • 描述:返回值
  1. {
  2. code : 0 // 0 代表未知状态
  3. // 1 代表开始连接
  4. // 2 代表连接成功
  5. // 3 代表连接失败
  6. // 4 代表连接销毁
  7. // 5 代表网络繁忙
  8. }

示例代码

  1. var aliyunLive = api.require('aliyunLive');
  2. aliyunLive.addConnectStatusListener(function(ret){
  3. alert(JSON.stringify(ret));
  4. });****

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

focusing

自动对焦

focusing()

params

xRatio:

  • 类型:数字
  • 描述:屏幕横向方向的比例
  • 取值范围:0.0 - 1.0

yRatio:

  • 类型:数字
  • 描述:屏幕纵向方向的比例
  • 取值范围:0.0 - 1.0

示例代码

  1. var mediaPlayer = api.require('aliyunLive');
  2. mediaPlayer.focusing(0.5, 0.5);

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setZoom

设置缩放比例

setZoom()

params

scaleFactor:

  • 类型:数字
  • 描述:缩放因子
  • 取值范围:> 0.0

示例代码

  1. var mediaPlayer = api.require('aliyunLive');
  2. mediaPlayer.setZoom(1);

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

init

初始化媒体播放器

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

params

rect:

  • 类型:JSON 对象
  • 描述:(可选项)模块的位置及尺寸
  • 内部字段:
  1. {
  2. x: 0, //(可选项)数字类型;模块左上角的 x 坐标(相对于所属的 Window 或 Frame);默认值:0
  3. w: 300, //(可选项)数字类型;模块的宽度;页面从x位置开始自动充满所属的 Window 或 Frame 的宽度;默认:300
  4. h: 300 //(可选项)数字类型;模块的高度;默认:300
  5. }

accessKeyId:

  • 类型:字符串
  • 描述:accessKey(需要到阿里云直播平台去申请)

accessKeySecret:

  • 类型:字符串
  • 描述:accessKeySecret(需要到阿里云直播平台去申请)

businessId:

  • 类型:字符串
  • 描述:businessId

fixedOn:

  • 类型:字符串类型
  • 描述:(可选项)模块添加到指定 frame 的名字(只指 frame,传 window 无效)
  • 默认:模块依附于当前 window

fixed:

  • 类型:布尔
  • 描述:(可选项)模块是否随所属 window 或 frame 滚动
  • 默认值:true(不随之滚动)

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status : true //布尔类型;表示是否初始化成功
  3. }

err:

  • 类型:JSON 对象
  • 注意:该参数只在初始化失败后存在
  • 内部字段:
  1. {
  2. msg : '初始化失败' //字符串类型;错误描述
  3. }

示例代码

  1. var mediaPlayer = api.require('aliyunLive');
  2. mediaPlayer.init({
  3. rect: {
  4. x: 0,
  5. y: 200,
  6. w: 375,
  7. h: 267
  8. },
  9. accessKeyId : 'QxJIheGFRL926hFX',
  10. accessKeySecret : 'hipHJKpt0TdznQG2J4D0EVSavRH7mR',
  11. businessId : 'video_live'
  12. }, function(ret, err) {
  13. if(ret){
  14. alert(JSON.stringify(ret));
  15. }
  16. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

prepareToPlay

准备播放(注意play之前需要调用此方法)

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

params

url:

  • 类型:字符串
  • 描述:播放地址,支持(支持HLS、RTMP、HTTP FLV、mp4等流格式)

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status : true //布尔类型;表示是否准备就绪
  3. }

示例代码

  1. var mediaPlayer = api.require('aliyunLive');
  2. mediaPlayer.prepareToPlay({
  3. url:'rtmp://live.hkstv.hk.lxdns.com/live/hks'
  4. }, function(ret, err) {
  5. if(ret && ret.status){
  6. alert("MediaPlayer Prepare Ready");
  7. }

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

play

播放

play()

示例代码

  1. var mediaPlayer = api.require('aliyunLive');
  2. mediaPlayer.play();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

pause

暂停

pause()

示例代码

  1. var mediaPlayer = api.require('aliyunLive');
  2. mediaPlayer.pause();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

stop

停止

示例代码

  1. var mediaPlayer = api.require('aliyunLive');
  2. mediaPlayer.stop();

可用性

iOS系统,Android系统

destroy

销毁

destroy()

示例代码

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

getVideoWidth

getVideoWidth(callback(ret))

获取视频的宽度

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. width : 300 //数字类型;视频的宽度
  3. }

示例代码

  1. var mediaPlayer = api.require('aliyunLive');
  2. mediaPlayer.getVideoWidth(function(ret){
  3. if(ret){
  4. alert("Video width : " + ret.width);
  5. }
  6. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

getVideoHeight

getVideoHeight(callback(ret))

获取视频的高度

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. height : 300 //数字类型;视频的高度
  3. }

示例代码

  1. var mediaPlayer = api.require('aliyunLive');
  2. mediaPlayer.getVideoHeight(function(ret){
  3. if(ret){
  4. alert("Video height : " + ret.height);
  5. }
  6. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setTimeout

setTimeout({params})

设置请求超时时间

params

timeout:

  • 类型:数字类型
  • 描述:请求超时时间

示例代码

  1. var mediaPlayer = api.require('aliyunLive');
  2. mediaPlayer.setTimeout({
  3. timeout 5000
  4. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setMediaType

setMediaType({params})

设置媒体类型

params

type:

  • 类型:数字类型
  • 描述:媒体类型
  • 取值范围:
    • 0 live
    • 1 vod

示例代码

  1. var mediaPlayer = api.require('aliyunLive');
  2. mediaPlayer.setMediaType({
  3. type 0
  4. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setMuteMode

setMuteMode({params})

是否静音

params

isMute:

  • 类型:布尔类型
  • 描述:表示是否静音

示例代码

  1. var mediaPlayer = api.require('aliyunLive');
  2. mediaPlayer.setMuteMode({
  3. isMute true
  4. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setVideoScalingMode

setVideoScalingMode({params})

视频缩放模式

params

mode:

  • 类型:数字类型
  • 描述:视频缩放模式
  • 取值范围:
    • 0 等比例缩放
    • 1 剪切模式

示例代码

  1. var mediaPlayer = api.require('aliyunLive');
  2. mediaPlayer.setVideoScalingMode({
  3. mode 1
  4. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setDefaultDecoder

setDefaultDecoder({params})

设置默认解码器(由于不同手机硬件的差别,使用硬件解码器可能导致一些兼容性问题,所以在这里建议使用软件解码器)

params

type:

  • 类型:数字类型
  • 描述:解码器模式

  • 备注:默认为软件解码。由于android手机硬件适配性的问题,很多android手机的硬件解码会有问题,所以,我们建议尽量使用软件解码。

  • 取值范围:

    • 0 硬件解码器
    • 1 软件解码器

示例代码

  1. var mediaPlayer = api.require('aliyunLive');
  2. mediaPlayer.setDefaultDecoder({
  3. type 1
  4. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setMaxBufferDuration

setMaxBufferDuration({params})

设置缓冲时长

params

duration:

  • 类型:数字类型
  • 描述:缓冲时长

示例代码

  1. var mediaPlayer = api.require('aliyunLive');
  2. mediaPlayer.setMaxBufferDuration({
  3. duration 10000
  4. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

addEventListener

addEventListener({params}, callback(ret))

添加监听事件

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. eventName : 'prepared' // 字符串;监听事件的名称;
  3. // prepared
  4. // error
  5. // stopped
  6. // completed
  7. //startCache
  8. //endCache
  9. errorCode : 502 // 只有在error的情况下才有此参数
  10. }
  • errorCode:
    • 511 加载超时
    • 501 未知错误
    • 502 没有输入文件
    • 503 no surface
    • 504 视频资源或者网络不可用
    • 505 不支持此编码
    • 506 没有足够内存
    • 401 网络视频播放错误,没有网络或者网络状态不好的情况下播放网络视频会出现该错误
    • 402 没有优先级
    • 400 非法请求
    • 509 未认证
    • 510 资源访问失败

示例代码

  1. var mediaPlayer = api.require('aliyunLive');
  2. mediaPlayer.addEventListener(function(ret){
  3. alert(JSON.stringify(ret));
  4. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

getErrorCode

getErrorCode(callback(ret))

获取错误码

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. errorCode : 0
  3. }
  1. var mediaPlayer = api.require('aliyunLive');
  2. mediaPlayer.getErrorCode(function(ret){
  3. if(ret){
  4. alert(ret.errorCode);
  5. });

可用性

Android系统