aliyunLive

来自于:官方立即使用

录制端(推流)

configStream startStream stopStream setFlash setMute setBeauty setSkinValue setBeautyLevel setExposureValue toggleCamera destroyStream addConnectStatusListener focusing setZoom

播放端(拉流)

init prepareToPlay play pause stop destroy getVideoWidth getVideoHeight setTimeout setMediaType setMuteMode setVideoScalingMode setDefaultDecoder setMaxBufferDuration addEventListener getErrorCode

概述

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

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

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

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

configStream

配置直播流

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

params

rect:

  • 类型:JSON 对象
  • 描述:(可选项)视图的位置及尺寸
  • 内部字段:
  1. {
  2. x: 0, //(可选项)数字类型;模块左上角的 x 坐标(相对于所属的 Window 或 Frame);默认值:0
  3. y: 0, //(可选项)数字类型;模块左上角的 y 坐标(相对于所属的 Window 或 Frame);默认值:0
  4. w: 375, //(可选项)数字类型;模块的宽度;默认父视图的宽度
  5. h: 667 //(可选项)数字类型;模块的宽度;默认父视图的高度
  6. }

url:

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

bitRate:

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

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:

  • 类型:字符类型
  • 描述:(可选项)摄像头采集质量
  • 取值范围:
    • 960*540
    • 1280*720
  • 默认: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. beauty: 'on',
  4. });

可用性

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

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

setBeautyLevel({params})

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()

示例代码

  1. var aliyunLive = api.require('aliyunLive');
  2. aliyunLive.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. y: 0, //(可选项)数字类型;模块左上角的 y 坐标(相对于所属的 Window 或 Frame);默认值:0
  4. w: 300, //(可选项)数字类型;模块的宽度;页面从x位置开始自动充满所属的 Window 或 Frame 的宽度;默认:300
  5. h: 300 //(可选项)数字类型;模块的高度;默认:300
  6. }

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. }
  8. });

可用性

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

停止

stop()

示例代码

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

可用性

iOS系统,Android系统

destroy

销毁

destroy()

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

getVideoWidth

getVideoWidth(callback(ret))

获取视频的宽度

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. }
  6. });

可用性

Android系统

可提供的1.0.0及更高版本