vcloudLive

来自于:开发者立即使用

概述

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及更高版本