vcloudLive
来自于:开发者
requestMediaCapturerAccess pushLiveInit startLive stopLive closeLive startMusic stopMusic switchCamera switchFlash filterType
概述
vcloudLive模块,实现了iOS、安卓平台集成网易视频云直播SDK模块。
网易视频云接入
申请步骤
一、注册
1.进入网易视频云首页,点击“注册”进入注册流程。
2.支持手机及邮箱两种注册方式(网易通行证用户可直接登录),如图:
二、服务开通
1.注册登录后,打开管理控制台,如图:
2.用户基本信息完善后可点击“申请开通”,进入到服务开通申请页(以云直播申请开通为例),选择计费方式并提交申请,如图:
3.提交申请后,管理控制台页中的状态更新为后台审核中,可联系客服以加快审核流程:
4.后台审核通过,服务开通成功,如图:
三、直播管理
1.在服务概况中,用户可以通过操作来对计费方式进行更改,以及能够浏览到关于直播的相关信息,如图:
2.点击“管理控制台”进入频道管理,在频道管理页面中,您可以查看当前直播频道的情况。包括频道名称、ID、创建时间、频道状态和操作等等。可以对直播名称进行搜索,也可以批量对直播频道进行暂停、恢复和删除。直播频道建立后,将出现在频道列表中。
2.1 在频道管理页中点击“新建”按钮,输入频道名称;频道类型:当前默认RTMP类型,后期会有其他类型可选择;点击保存按钮,页面跳转至频道列表页
2.2 频道状态共有“空闲”、“直播中”、“直播录制中”和“禁用”四种状态。
2.3 点击频道列表操作下的“地址”,显示1条RTMP推流地址和HTTP、HLS、RTMP3条拉流地址。使用直播推流SDK或Demo输入推流地址即可开始直播推流,使用播放器SDK或Demo输入拉流地址(任意一条拉流地址)即可收看直播。
2.4 点击频道列表操作下的“录制”,可以修改此频道的录制配置,如是否开启直播时自动录制、录制视频的名称、录制视频的默认格式及切片的长度等,直播录制一律存放到云点播服务器,因此使用直播录制功能必须先开通云点播VOD服务。
四、点播管理
1 点击“视频上传”,从本地添加待上传的视频,上传前可以修改视频名称、视频分类及转码模板,修改完后点击“上传视频”即开始上传视频,上传成功后视频存放到网易视频云存储服务器,如选择了转码模板,上传成功后系统自动按照对应模板格式进行转码处理,转码处理需要消耗一定的时间。
2 点击“视频管理”,显示已经成功上传的视频列表及信息,其中“视频ID”为视频唯一标识。“占用空间”表示该视频下的源视频和转码后的所有视频相加的存储量。视频状态共有“正常”、“转码中”、“转码失败”及“屏蔽”等四种状态,“屏蔽”表示该视频无法被点播及下载。可以对“正常”状态的视频作重新转码、屏蔽、删除、设置分类等操作,对“屏蔽”状态下的视频只能做恢复和删除视频处理。
点击“地址”,该视频的源视频及所有转码视频都会显示单独的地址,可以作复制地址、web预览播放、下载及删除等操作,其中源视频在“地址”页下无法删除,需回到“视频管理”页删除,删除源视频即同时删除所有转码视频。
3 点击“转码设置”,显示转码模板列表及信息,其中默认模板为不作任何转码处理,也不可对其做编辑和删除操作。每个模板会显示所有的转码格式及清晰度。
4 点击“新建”可创建新的转码模板,共有标清MP4、FLV、HLS,高清MP4、FLV、HLS,超清MP4、FLV、HLS等9种转码格式可选。
5 点击“分类设置”,显示分类列表及信息,其中默认分类不可编辑和删除。可以创建新的分类,删除非默认分类的分类,该分类下的文件不会删除,只会转移到默认分类下。
模块接口
requestMediaCapturerAccess
监测当前app的麦克风,以及摄像头权限都是打开状态中
requestMediaCapturerAccess(callback(ret, err))
示例代码
var obj = api.require('vcloudLive');
obj.requestMediaCapturerAccess(function(ret, err) {
alert(JSON.stringify(ret));
});
可用性
iOS、Android系统
可提供的1.0.0及更高版本
pushLiveInit
直播初始化。由于网易直播sdk的问题,Android 只能全屏直播。
pushLiveInit({params}, callback(ret, err))
params
x:
- 类型:数字类型
- 描述:(必填项)模块左上角的 x 坐标(相对于所属的 Window 或 Frame);iOS 有效;
- 默认值:0
y:
- 类型:数字类型
- 描述:(必填项)模块左上角的 y 坐标(相对于所属的 Window 或 Frame);默认:0;iOS 有效;
- 默认值:0
w:
- 类型:数字类型
- 描述:(可选项)模块的宽度;默认:所属的 Window 或 Frame 的宽度;iOS 有效;
h:
- 类型:数字类型
- 描述:(可选项)模块的高度;默认:所属的 Window 或 Frame 的高度;iOS 有效;
- 默认值:300
orientation:
- 类型:数字类型
- 描述:(可选项)推流视频方向;1:PORTRAIT 2:UPDOWN 3:RIGHT 4:LEFT。
- 默认值:1
cameraPosition:
- 类型:数字类型
- 描述:(可选项)开启前置或者后置摄像头;1:FRONT 2:BACK。
- 默认值:1
bitrate:
- 类型:数字类型
- 描述:(可选项)推流的视频流比特率。
- 默认值:500000
fps:
- 类型:数字类型
- 描述:(可选项)推流的视频帧率。
- 默认值:24
fixedOn:
- 类型:字符串
- 描述:(可选项)模块所属 Frame 的名字,若不传则模块归属于当前 Window
fixed:
- 类型:布尔
- 描述:(可选项)模块是否随所属 Window 或 Frame 滚动
- 默认值:true(不随之滚动)
streamingQuality:
- 类型:布尔
- 描述:(可选项)视频质量;1:LOW低清 352288 2:MEDIUM标清 480360 3:HIGH高清 640480 4:SUPER高清 960540
- 默认值:3
videoRenderMode:
- 类型:字符串
- 描述:(可选项)设置推流视频显示模式;1:采集多大分辨率,则显示多大分辨率 2:设置为16:9模式
- 默认值:2
filterOn:
- 类型:布尔
- 描述:(可选项)是否开启滤镜
- 默认值:true
pushUrl:
- 类型:字符串
- 描述:(必填项)网易云信的推流地址
示例代码
var demo = api.require('vcloudLive');
demo.pushLiveInit({
x: 0,
y: 0,
h: 250,
fixedOn: api.frameName,
fixed: true,
orientation: 1,//1 PORTRAIT 2 UPDOWN 3 RIGHT 4 LEFT
cameraPosition: 1,//1 FRONT 2 BACK
bitrate: 500000,//码率
fps: 24,//帧率
streamingQuality: 3,//1 LOW低清 352*288 2 MEDIUM标清 480*360 3 HIGH高清 640*480 4 SUPER高清 960*540 5 SUPER_HIGH 超高清 (1280*720)
videoRenderMode: 2,//1 采集多大分辨率,则显示多大分辨率 2设置为16:9模式
pushUrl:"rtmp://p56d785b4.live.126.net/live/05965c485ca640f693861f87ca71d68a?wsSecret=672fc37f4a66b60f4208cdbf12c05ec1&wsTime=1473839561",
filterOn: true //是否开启滤镜
},
function(ret, err) {
alert(JSON.stringify(ret) + " " + JSON.stringify(err));
});
callback(ret, err)
ret:
- 类型:JSON对象
- 内部字段:
{
status: true//布尔型;true||false
}
err:
- 类型:JSON对象
- 内部字段:
{
msg: ""
}
可用性
iOS、Android系统
可提供的1.0.0及更高版本
startLive
开始直播
startLive(callback(ret, err))
callback(ret, err)
ret:
- 类型:JSON对象
- 内部字段:
{
status: true, //布尔型;true||false
}
示例代码
var demo = api.require('vcloudLive');
demo.startLive(function(ret, err) {
alert(JSON.stringify(ret) + " " + JSON.stringify(err));
});
可用性
iOS、Android系统
可提供的1.0.0及更高版本
stopLive
停止直播
stopLive(callback(ret, err))
callback(ret, err)
ret:
- 类型:JSON对象
- 内部字段:
{
status: true //布尔型;true||false
}
err:
- 类型:JSON对象
- 内部字段:
{
msg: ""
}
示例代码
var demo = api.require('vcloudLive');
demo.stopLive(function(ret, err) {});
可用性
iOS、Android系统
可提供的1.0.0及更高版本
closeLive
关闭直播
closeLive(callback(ret, err))
callback(ret, err)
ret:
- 类型:JSON对象
- 内部字段:
{
status: true //布尔型;true||false
}
err:
- 类型:JSON对象
- 内部字段:
{
msg: ""
}
示例代码
var demo = api.require('vcloudLive');
demo.closeLive(function(ret, err) {});
可用性
iOS、Android系统
可提供的1.0.0及更高版本
startMusic
播放音乐
startMusic({params}, callback(ret, err))
params
path:
- 类型:字符串
- 描述:(必填项)mp3音乐路径文件,支持fs:// widget:// (备注:安卓不支持widget://);
callback(ret, err)
ret:
- 类型:JSON对象
- 内部字段:
{
status: true //布尔型;true||false
}
err:
- 类型:JSON对象
- 内部字段:
{
msg: ""
}
示例代码
var demo = api.require('vcloudLive');
demo. startMusic({
path : "fs://shangxuege.mp3"
},
function(ret, err) {});
可用性
iOS、Android系统
可提供的1.0.0及更高版本
stopMusic
停止音乐
stopMusic(callback(ret, err))
示例代码
var obj = api.require('vcloudLive');
obj.stopMusic(function(ret, err) {
alert(JSON.stringify(ret));
});
可用性
iOS、Android系统
可提供的1.0.0及更高版本
switchCamera
切换摄像头
switchCamera(callback(ret, err))
示例代码
var obj = api.require('vcloudLive');
obj.switchCamera(function(ret, err) {
alert(JSON.stringify(ret));
});
可用性
iOS、Android系统
可提供的1.0.0及更高版本
switchFlash
开关闪光灯
switchFlash(callback(ret, err))
示例代码
var obj = api.require('vcloudLive');
obj.switchFlash(function(ret, err) {
alert(JSON.stringify(ret));
});
可用性
iOS、Android系统
可提供的1.0.0及更高版本
filterType
设置滤镜
filterType({params}, callback(ret, err))
params
filter:
- 类型:字符串
- 描述:(必填项)滤镜名称:(iOS:正常,黑白,自然,粉嫩,怀旧,美颜,android:正常,美颜);
示例代码
var obj = api.require('vcloudLive');
obj.filterType({
filter:"黑白"
},function(ret, err) {
alert(JSON.stringify(ret));
});
可用性
iOS、Android系统
可提供的1.0.0及更高版本