- 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
来自于:官方立即使用
录制端(推流)
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 平台上的模块是: alivcLivePusher 和 alivcLivePlayer。推荐开发者使用这个两个模块。
注意:该模块android版 播放器只适用于android 4.4+,推流需要 android 4.5 以上版本支持。iOS版最低版本为8.0。(iOS云编译的时候需要勾选相机和麦克风权限,并在高级设置里选择iOS版本为8.0)
configStream
配置直播流
configStream({params},callback(ret, err))
params
rect:
- 类型:JSON 对象
- 描述:(可选项)视图的位置及尺寸
- 内部字段:
{
x: 0, //(可选项)数字类型;模块左上角的 x 坐标(相对于所属的 Window 或 Frame);默认值:0
y: 0, //(可选项)数字类型;模块左上角的 y 坐标(相对于所属的 Window 或 Frame);默认值:0
w: 375, //(可选项)数字类型;模块的宽度;默认父视图的宽度
h: 667 //(可选项)数字类型;模块的宽度;默认父视图的高度
}
url:
- 类型:字符串
- 描述:推流url
bitRate:
- 类型:JSON对象
- 描述:(可选项)码率
- 内部字段:
{
videoMaxBitRate: 1500 * 1000, //(可选项)数字类型;最大码率,默认“1500 * 1000”,网速变化的时候会根据这个值来提供建议码率
videoMinBitRate: 400 * 1000, //(可选项)数字类型;最小码率,默认“400 * 1000”,网速变化的时候会根据这个值来提供建议码率
videoBitRate: 600 * 1000, //(可选项)数字类型;当前码率,默认“600 * 1000”,在最大码率和最小码率之间
audioBitRate: 64 * 1000 //(可选项)数字类型;音频码率,默认“64 * 1000”
}
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对象
- 描述:(可选项)水印图片,不添加该参数,则无水印图片
- 内部字段:
path: '', //字符串类型,图片的路径,支持fs://,widget://
location: ’‘, //字符串类型,图片位置,取值范围:rightTop,leftTop,leftBottom,rightBottom,默认leftTop
maginX: 20, //数字类型,水印图片左上角顶点的x坐标,默认20
maginY: 20 //数字类型,水印图片左上角顶点的y坐标,默认20
fixedOn:
- 类型:字符串类型
- 描述:(可选项)模块添加到指定 frame 的名字(只指 frame,传 window 无效)
- 默认:模块依附于当前 window
fixed:
- 类型:布尔
- 描述:(可选项)模块是否随所属 window 或 frame 滚动
- 默认值:true(不随之滚动)
callback
ret:
- 类型:JSON对象
- 描述:返回值
{
status : true // 预览界面是否打开成功
}
示例代码
var aliyunLive = api.require('aliyunLive');
aliyunLive.configStream({
rect: {
x: 0,
y: 0,
w: 375,
h: 667
},
url: '',
bitRate: {
videoMaxBitRate: 1500 * 1000,
videoMinBitRate: 400 * 1000,
videoBitRate: 600 * 1000,
audioBitRate: 64 * 1000
},
fps: 20,
screenOrientation: 'vertical',
reconnectTimeout: 5,
videoResolution: '720P',
videoPreset: '1280*720',
cameraPosition: 'front',
waterMarkImage: {
path: '',
location: 'leftTop',
maginX: 20,
maginY: 20
},
fixed: true
},function(ret) {
alert(JSON.stringify(ret));
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
startStream
开始推流
startStream(callback(ret, err))
callback
ret:
- 类型:JSON对象
- 描述:返回值
{
status : true // 布尔类型,是否推流成功
errorMsg:'' //当status为false时返回,重连超时的错误信息
}
示例代码
var aliyunLive = api.require('aliyunLive');
aliyunLive.startStream(function(ret){
alert(JSON.stringify(ret));
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
stopStream
停止推流
stopStream(callback(ret,err))
callback
ret:
- 类型:JSON对象
- 描述:返回值
{
status : true // 是否停止成功
}
示例代码
var aliyunLive = api.require('aliyunLive');
aliyunLive.stopStream(function(ret){
alert(JSON.stringify(ret));
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setFlash
设置闪关灯(前置摄像头打开时不支持操作闪光灯)
setFlash({params})
params
flash:
- 类型:字符串
- 描述:(可选项)闪光灯类型
- 默认值:off
- 取值范围:
- on:打开闪光灯
- off:关闭闪关灯
示例代码
var aliyunLive = api.require('aliyunLive');
aliyunLive.setFlash({
flash: 'on'
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setMute
设置静音
setMute({params})
params
mute:
- 类型:字符串
- 描述:(可选项)静音状态
- 默认值:off
- 取值范围:
- on:静音打开
- off:静音关闭
示例代码
var aliyunLive = api.require('aliyunLive');
aliyunLive.setMute({
mute: 'on'
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setBeauty
设置美颜
setBeauty({params})
params
beauty:
- 类型:字符串
- 描述:(可选项)美颜状态
- 默认值:off
- 取值范围:
- on:美颜打开
- off:美颜关闭
示例代码
var aliyunLive = api.require('aliyunLive');
aliyunLive.setBeauty({
beauty: 'on',
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setSkinValue
设置美颜度
setSkinValue({params})
params
value:
- 类型:数字
- 描述:(可选项)美颜度
- 默认值:1
- 取值范围: 调节范围 0 — 1
示例代码
var aliyunLive = api.require('aliyunLive');
aliyunLive.setSkinValue({
value:1
});
可用性
iOS系统
可提供的1.0.0及更高版本
setBeautyLevel
设置美颜级别(注意:只有打开美颜是调用该方法才有效)
setBeautyLevel({params})
params
level:
- 类型:字符串
- 描述:(可选项)美颜级别
- 默认值:3
- 取值范围:1~7
示例代码
var aliyunLive = api.require('aliyunLive');
aliyunLive.setBeautyLevel({
level:3
});
可用性
Android系统
可提供的1.0.0及更高版本
setExposureValue
设置相机曝光度
setExposureValue({params})
params
value:
- 类型:数字
- 描述:(可选项)曝光度
- 默认值:0
- 取值范围: 调节范围 -10 — 10
示例代码
var aliyunLive = api.require('aliyunLive');
aliyunLive.setExposureValue({
value:1
});
可用性
iOS系统
可提供的1.0.0及更高版本
toggleCamera
转换摄像头
toggleCamera()
示例代码
var aliyunLive = api.require('aliyunLive');
aliyunLive.toggleCamera();
destroyStream
销毁推流,释放资源
destroyStream()
示例代码
var aliyunLive = api.require('aliyunLive');
aliyunLive.destroyStream();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
addConnectStatusListener
添加连接状态监听者
addConnectStatusListener(callback(ret,err))
callback
ret:
- 类型:JSON对象
- 描述:返回值
{
code : 0 // 0 代表未知状态
// 1 代表开始连接
// 2 代表连接成功
// 3 代表连接失败
// 4 代表连接销毁
// 5 代表网络繁忙
}
示例代码
var aliyunLive = api.require('aliyunLive');
aliyunLive.addConnectStatusListener(function(ret){
alert(JSON.stringify(ret));
});****
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
focusing
自动对焦
focusing()
params
xRatio:
- 类型:数字
- 描述:屏幕横向方向的比例
- 取值范围:0.0 - 1.0
yRatio:
- 类型:数字
- 描述:屏幕纵向方向的比例
- 取值范围:0.0 - 1.0
示例代码
var mediaPlayer = api.require('aliyunLive');
mediaPlayer.focusing(0.5, 0.5);
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setZoom
设置缩放比例
setZoom()
params
scaleFactor:
- 类型:数字
- 描述:缩放因子
- 取值范围:> 0.0
示例代码
var mediaPlayer = api.require('aliyunLive');
mediaPlayer.setZoom(1);
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
init
初始化媒体播放器
init({params}, callback(ret, err))
params
rect:
- 类型:JSON 对象
- 描述:(可选项)模块的位置及尺寸
- 内部字段:
{
x: 0, //(可选项)数字类型;模块左上角的 x 坐标(相对于所属的 Window 或 Frame);默认值:0
y: 0, //(可选项)数字类型;模块左上角的 y 坐标(相对于所属的 Window 或 Frame);默认值:0
w: 300, //(可选项)数字类型;模块的宽度;页面从x位置开始自动充满所属的 Window 或 Frame 的宽度;默认:300
h: 300 //(可选项)数字类型;模块的高度;默认:300
}
accessKeyId:
- 类型:字符串
- 描述:accessKey(需要到阿里云直播平台去申请)
accessKeySecret:
- 类型:字符串
- 描述:accessKeySecret(需要到阿里云直播平台去申请)
businessId:
- 类型:字符串
- 描述:businessId
fixedOn:
- 类型:字符串类型
- 描述:(可选项)模块添加到指定 frame 的名字(只指 frame,传 window 无效)
- 默认:模块依附于当前 window
fixed:
- 类型:布尔
- 描述:(可选项)模块是否随所属 window 或 frame 滚动
- 默认值:true(不随之滚动)
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status : true //布尔类型;表示是否初始化成功
}
err:
- 类型:JSON 对象
- 注意:该参数只在初始化失败后存在
- 内部字段:
{
msg : '初始化失败' //字符串类型;错误描述
}
示例代码
var mediaPlayer = api.require('aliyunLive');
mediaPlayer.init({
rect: {
x: 0,
y: 200,
w: 375,
h: 267
},
accessKeyId : 'QxJIheGFRL926hFX',
accessKeySecret : 'hipHJKpt0TdznQG2J4D0EVSavRH7mR',
businessId : 'video_live'
}, function(ret, err) {
if(ret){
alert(JSON.stringify(ret));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
prepareToPlay
准备播放(注意play之前需要调用此方法)
prepareToPlay({params}, callback(ret, err))
params
url:
- 类型:字符串
- 描述:播放地址,支持(支持HLS、RTMP、HTTP FLV、mp4等流格式)
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
status : true //布尔类型;表示是否准备就绪
}
示例代码
var mediaPlayer = api.require('aliyunLive');
mediaPlayer.prepareToPlay({
url:'rtmp://live.hkstv.hk.lxdns.com/live/hks'
}, function(ret, err) {
if(ret && ret.status){
alert("MediaPlayer Prepare Ready");
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
play
播放
play()
示例代码
var mediaPlayer = api.require('aliyunLive');
mediaPlayer.play();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
pause
暂停
pause()
示例代码
var mediaPlayer = api.require('aliyunLive');
mediaPlayer.pause();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
stop
停止
stop()
示例代码
var mediaPlayer = api.require('aliyunLive');
mediaPlayer.stop();
可用性
iOS系统,Android系统
destroy
销毁
destroy()
示例代码
var mediaPlayer = api.require('aliyunLive');
mediaPlayer.destroy();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
getVideoWidth
getVideoWidth(callback(ret))
获取视频的宽度
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
width : 300 //数字类型;视频的宽度
}
示例代码
var mediaPlayer = api.require('aliyunLive');
mediaPlayer.getVideoWidth(function(ret){
if(ret){
alert("Video width : " + ret.width);
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
getVideoHeight
getVideoHeight(callback(ret))
获取视频的高度
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
height : 300 //数字类型;视频的高度
}
示例代码
var mediaPlayer = api.require('aliyunLive');
mediaPlayer.getVideoHeight(function(ret){
if(ret){
alert("Video height : " + ret.height);
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setTimeout
setTimeout({params})
设置请求超时时间
params
timeout:
- 类型:数字类型
- 描述:请求超时时间
示例代码
var mediaPlayer = api.require('aliyunLive');
mediaPlayer.setTimeout({
timeout : 5000
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setMediaType
setMediaType({params})
设置媒体类型
params
type:
- 类型:数字类型
- 描述:媒体类型
- 取值范围:
- 0 live
- 1 vod
示例代码
var mediaPlayer = api.require('aliyunLive');
mediaPlayer.setMediaType({
type : 0
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setMuteMode
setMuteMode({params})
是否静音
params
isMute:
- 类型:布尔类型
- 描述:表示是否静音
示例代码
var mediaPlayer = api.require('aliyunLive');
mediaPlayer.setMuteMode({
isMute : true
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setVideoScalingMode
setVideoScalingMode({params})
视频缩放模式
params
mode:
- 类型:数字类型
- 描述:视频缩放模式
- 取值范围:
- 0 等比例缩放
- 1 剪切模式
示例代码
var mediaPlayer = api.require('aliyunLive');
mediaPlayer.setVideoScalingMode({
mode : 1
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setDefaultDecoder
setDefaultDecoder({params})
设置默认解码器(由于不同手机硬件的差别,使用硬件解码器可能导致一些兼容性问题,所以在这里建议使用软件解码器)
params
type:
- 类型:数字类型
描述:解码器模式
备注:默认为软件解码。由于android手机硬件适配性的问题,很多android手机的硬件解码会有问题,所以,我们建议尽量使用软件解码。
取值范围:
- 0 硬件解码器
- 1 软件解码器
示例代码
var mediaPlayer = api.require('aliyunLive');
mediaPlayer.setDefaultDecoder({
type : 1
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setMaxBufferDuration
setMaxBufferDuration({params})
设置缓冲时长
params
duration:
- 类型:数字类型
- 描述:缓冲时长
示例代码
var mediaPlayer = api.require('aliyunLive');
mediaPlayer.setMaxBufferDuration({
duration : 10000
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
addEventListener
addEventListener({params}, callback(ret))
添加监听事件
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
eventName : 'prepared' // 字符串;监听事件的名称;
// prepared
// error
// stopped
// completed
//startCache
//endCache
errorCode : 502 // 只有在error的情况下才有此参数
}
- errorCode:
- 511 加载超时
- 501 未知错误
- 502 没有输入文件
- 503 no surface
- 504 视频资源或者网络不可用
- 505 不支持此编码
- 506 没有足够内存
- 401 网络视频播放错误,没有网络或者网络状态不好的情况下播放网络视频会出现该错误
- 402 没有优先级
- 400 非法请求
- 509 未认证
- 510 资源访问失败
示例代码
var mediaPlayer = api.require('aliyunLive');
mediaPlayer.addEventListener(function(ret){
alert(JSON.stringify(ret));
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
getErrorCode
getErrorCode(callback(ret))
获取错误码
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
errorCode : 0
}
示例代码
var mediaPlayer = api.require('aliyunLive');
mediaPlayer.getErrorCode(function(ret){
if(ret){
alert(ret.errorCode);
}
});
可用性
Android系统
可提供的1.0.0及更高版本