专业新媒体云服务商

400电话 400-963-9063
帮助列表
帮助列表
api说明

  API的word版本下载 

演播厅接口概览

一、快速入门

1、搭建好PHP环境


2、设计页面布局,分配好每块区域的作用,写好样式。


3、引入js

  <script src="https://cdn.aodianyun.com/static/jquery/jquery-1.7.2.min.js"type="text/javascript"></script>

<script src="../shared/js/core-obj.js"type="text/javascript"></script>

<script src="../shared/js/core-ui.js"type="text/javascript"></script>

4、编写初始化演播室代码


1.png


5、若现有接口和模块不能满足新需求,再在此基础上,面向原始导播台开发,添加自己的模块。

 

二、演播室js接口说明

var studioApp = new StudioApp(); //一下是StudioApp类的接口说明


接口功能

Function name

参数

例子


演播室初始化

Init

onStudioLoad:加载数据和初始化完成时回调的函数;

studioApp.Init({

onStudioLoad:   function (info) {

            //在这里初始化界面

//比如合成视频的预览框

studioApp.preVideoBox({

selector: "#idPgwVideo",

volume: 100, height: 220,

width: '100%' });

}

})





初始化合成视频预览框

preVideoBox

selector:jQuery选择器,可以是放视频的容器id或classname ;

volume:初始化时视频的音量大小(默认100);

width:视频宽(默认360px);

height: 视频高(默认240px);

type:类型填写iframe时,视频以iframe的形式引入页面,认是直接填入页面的方式;

studioApp.preVideoBox({

selector: "#preVideoBox",

volume: 0

});

初始化合成视频播放音量条

localVoiceBar

selector:放音量的容器id或classname;

direction:音量条的显示方式left2right为横条(默认是竖条);

studioApp.localVoiceBar({     

selector: ".voiceSl

iderPre",

direction: "left2right"

});

弹出合成视频的设置窗口

showSetOutputDlg

带参数时则代表固定该参数数据值,且不显示,户则无法改动

enableOutput:发布URL / 发布URL列表是否启用;

videoSize:视频大小;

videoBit:视频码率;

videoCBR:是否视频固定码率;

audioBit:音频码率;

<a 

onclick="studioApp.showSetOutputDlg

{videoBit:’600k’}

)">设置输出流</a>

 

弹出设置合成视频的节目输出延时的窗口

showSetPgmDelayTimeDlg


<a   onclick="studioApp.

showSetPgmDelayTimeDlg()">

设置节目输出延时</a>





创建输入流视频

smallVideoBox

selector:放视频的容器id或classname;

channel:填数字几就引入第几路视频流;

volume:初始化时视频的音量大小(默认100);

width:视频宽(默认360px);

height: 视频高(默认240px);

type:类型填写iframe时,视频以iframe的形式引入页面,认是直接填入页面的方式;

studioApp.smallVideoBox({

selector:   "#smallVideo_2",

channel: 2,

volume: 100,

type: "iframe",

height: 360,

width: 640

});

初始化输入流视频的信号

signalBox

selector:放信号的容器id或classname;

channel:填数字几就引入第几路视频的信号

studioApp.signalBox({  

selector: ".signalBox1",

channel: 0

});

初始化输入流视频的进度条

progressBar

selector:放进度条的容器id或classname;

channel:填数字几就引入第几路视频的进度条;

studioApp.progressBar({  

selector: ".progressBar1",

channel: 0

});

初始化输入流视频的播放音量

localVoiceBar

selector:放音量的容器id或classname;

channel:填数字几就引入第几路视频的播放音量;

direction:音量条的显示方式left2right为横条(默认是竖条);

studioApp.localVoiceBar({  

selector: ".voiceSlider1",

channel: 0 });

初始化输入流视频的发布音量

pubVoiceBar

selector:音量的容器id或classname;

channel:填数字几就引入第几路视频的发布音量;

direction:音量条的显示方式left2right为横条(默认是竖条);

studioApp.pubVoiceBar({  

selector: ".voiceSlider11",

channel: 0,

direction: "left2right"

});

弹出输入流视频的设置窗口

showSetInputDlg

channel:填数字几就引入第几路视频的设置窗口;

<a   onclick=

"studioApp.showSetInputDlg({

channel: 0 });">设置输入流0</a>

弹出输入流视频抠像设置的窗口

showSetKxDlg

channel:填数字几就引入第几路视频的抠像设置窗口;

<a   onclick="studioApp.showSetKxDlg({

channel:0})">

视频1抠像设置</a>





初始化导播台发布二维码框

qrcodeImage

selector:放二维码的容器id或classname;

 

studioApp.qrcodeImage({  

selector: '#qrcodeImg' });

初始化导播台的版本号、消耗的CPU等信息条

osInfoBox

selector:放导播台信息的容器id或classname;

 

studioApp.describeService({  

selector: ".osInfoBox" });

重启导播台服务

restartService


<a   onclick="studioApp.

restartService()">重启服务</a>

重置导播台配置

resetService


<a   onclick="studioApp.

resetService()">重置配置</a>

修改导播台密码

showSetLcpsPassword


<a   onclick="studioApp.

showSetLcpsPassword()">修改密码</a>

初始化导播台配置

expectLcps

inputCount:设置导播台源个数;

sceneWidth:设置导视频宽;

sceneHeight:设置导视频高;

success:设置成功后的回调函数;

failure:设置失败后的回调函数;

studioApp.expectLcps({

inputCount:   5,

sceneWidth:   1280,

sceneHeight:   720,

              

success: function () { }

            });

返回导播台的信息

getLcpsConfigInfo

见附表一;

studioApp.getLcpsConfigInfo()





加载场景并根据场景设置导播台的页面场景

LoadSceneWithInitLcps

onGetSceneListSuccess:获取场景列表成功后调用的函数;

onInitSceneItem:将场景显示在页面上(生成的html中作为参数存储的属性名切勿随便更改。按右图命名);

onSelectSceneItem:处理已被选中的场景;

onInitSceneCompleted:初始化场景完成后调用的函数;


设置场景

Lcps.SelectWebPage

para:需要修改的参数;

success:设置成功后的回调函数;

failure:设置失败后的回调函数

webPageInfo的参数说明:

index:第几个场景;

zIndex:场景显示的位置,数字越大就显示最前

enable:场景是否显示;

beforeVideo:场景是否在视频前显示;

url:场景的样式的地址;

SceneList[index].coverUrl:场景封面图的地址;

SceneList[index].mgrUrl:场景管理页面的地址;

Title:场景的描述;

Reload:是否重新加载;

"$$hashKey":   "object:240"固定写法

studioApp.Lcps.SelectWebPage({

para:   webPageInfo,

failure: function (error) {

    alert("设置场景失败");

   }

});

varwebPageInfo   = {

"index": index,

"zIndex":   $(self).attr("sortVal"),

"enable": self.checked,

"beforeVideo": parseInt($(self)

.attr("PosOfVideo")) == 2,

"url": $(self).attr("scene"),

"coverUrl":   SceneList[index].coverUrl,

"mgrUrl":   SceneList[index].mgrUrl,

"title":   $(self).parent().attr("data-title"),

"reload": false,

"$$hashKey":   "object:240"

    };





设置演播厅信息

studioApp.SetStudioConfig

config:可以存储任何信息在这里,但是数据大小不要超过4k;

success:设置成功后的回调函数;

failure:设置失败后的回调函数;

studioApp.SetStudioConfig({

config:   data

    });

设置输入流信息

Lcps.ChangeInput

params:要改变得输入流参数;

success:设置成功后的回调函数;

failure:设置失败后的回调函数;

params请求参数说明:

channel :通道,必选,数字几就修改第几路视频;

enableChromaKey:是否允许抠像;

playURL源地址,必选;

inputType 源类型,必选,值为"拉流",   "推流", "   直接发布","白板";

maxBufferTime源最大缓冲时间,单位秒,可选;

wisId 当inputType为白板时使用,白板id,可 选;

studioApp.Lcps.ChangeInput({

params:   {

playURL:   'kx.mp4',

inputType:   "拉流",

               

channel: 0,

enableChromaKey:   true,

maxBufferTime:   0

            },

          

failure: function () {

               

alert("设置导播台源失败");

            }

 });

切换输入流场景

 

Lcps.Switch

Params:要改变得输入流场景的参数;

success:设置成功后的回调函数;

failure:设置失败后的回调函数

Params请求参数说明:

数字几就修改第几路视频;

w0视频0宽,可选,值为number类型的值;

h0视频0高,可选,值为number类型的值;

x0视频0水平位置,可选,值为number类型的值;

y0视频0垂直位置,可选,值为number类型的值;

v0视频0音量,可选,值为number类型的值,范   围 0-100;

z0视频0叠加顺序,可选,值为number类型的值,   范围      0-(inputCount-1);

//两个视频叠加

//效果最终在合成视频中显示

studioApp.Lcps.Switch({

paraArray:   paraArray,

           

failure: function (error) {

               

alert("设置导播台视频失败");

            }

        });

VarparaArray=

[{"w":640,"h":360,"x":0,"y":0,"v":100,"z":0},{"w":320,"h":180,"x":320,"y":180,"v":100,"z":1},{"w":320,"h":180,"x":640,"y":360,"v":0,"z":2},{"w":320,"h":180,"x":640,"y":360,"v":0,"z":3}]

 

三、原始导播台配置参数说明

在帮助中心https://www.aodianyun.com/aodianyun_doc/125开放的原始导播台api均已封装。


未罗列出来的可以找到该API的方法名


3.png


然后这样调用 studioApp.Lcps.Switch

 

    

附表一

{

    //string类型, code >=0 成功,否则失败

    "code":   "0",

    // string类型,对应的提示消息字符串

    "message":   "success", // object类型,对应配置

    "config":   {

        //array类型,导播台4个源地址

          "sourceArray": [

            {

                //   string类型,源地址

                  "playURL": "http://zb.v.qq.com:1863/?progid=100002100",

                //   string类型,源类型。可以是"拉流", "推流", "直接发布"

                  "inputType": "拉流"

            },

            {

                  "playURL":   "http://zb.v.qq.com:1863/?progid=100104700",

                  "inputType": "拉流"

            },

            {

                  "playURL":   "http://zb.v.qq.com:1863/?progid=100105500",

                  "inputType": "拉流"

            },

            {

                  "playURL":   "http://zb.v.qq.com:1863/?progid=100104500",

                  "inputType": "拉流"

            }

        ],

        // string类型,当前选择的通道。

          "pgwCurrentChannel": 0, // array类型,导播台输出地址,目前只支持第0路输出

          "pgwArray": [

            { // bool类型,是否启用

                  "enable": true, //string类型,输出地址

                  "publishURL": "rtmp://127.0.0.1/3001/0_pgw",

                //string类型,输出视频大小。例如640x480, 640x?, ?x480,有问号的表示等比缩放

                  "videoSize": "?x480", //string类型,视频码率

                  "videoBitrate": "800k", //string类型,音频码率

                  "audioBitrate": "48k"

            }, //此路禁用

            {

                  "enable": false,

                  "publishURL": "rtmp://127.0.0.1/3001/1_pgw",

                  "videoSize": "?x320",

                  "videoBitrate": "512k",

                  "audioBitrate": "48k"

            }, //此路禁用

            {

                  "enable": false,

                  "publishURL": "rtmp://127.0.0.1/3001/2_pgw",

                  "videoSize": "?x240",

                  "videoBitrate": "256k",

                  "audioBitrate": "48k"

            }, //此路作为pgw预览画面用

            {

                  "enable": true,

                  "publishURL": "rtmp://127.0.0.1/3001/3_pgw",

                  "videoSize": "?x240",

                  "videoBitrate": "256k",

                  "audioBitrate": "48k"

            }

        ], //number类型,场景宽

          "sceneWidth": 640, //number类型,场景高

          "sceneHeight": 480, //number类型,场景最大宽

          "sceneWidthMax": 1280,

        //number类型,场景最大高

          "sceneHeightMax ": 1280,

        //bool类型,是否启用logo

          "logoEnable": true,

        //string类型,logo地址

          "logoPath": "adylogo.png", //number类型,logo宽

          "logoWidth": 188, //number类型,logo高

          "logoHeight": 56, //number类型,场景水平位置

        " logoX   ": 1020, //number类型,场景垂直位置

        " logoY   ": 44, //number类型,源个数

        " inputCount   ": 4,

        //number类型,最大源个数

        "   inputCountMax": 8, //array类型,每个视频对应的叠加参数

          "streamParaArray": [

            { //number类型,视频水平位置

                  "x": 640, //number类型,视频垂直位置

                  "y": 480, //number类型,视频宽

                "w":   640, //number类型,视频高

                  "h": 480, //number类型,音量

                  "v": 0, //number类型,叠加顺序

                  "z": 0

            },

            {

                  "x": 0,

                  "y": 0,

                  "w": 640,

                  "h": 480,

                  "v": 100,

                  "z": 1

            },

            {

                  "x": 640,

                  "y": 480,

                  "w": 640,

                  "h": 480,

                  "v": 0,

                  "z": 2

            },

            {

                  "x": 640,

                  "y": 480,

                  "w": 640,

                  "h": 480,

                  "v": 0,

                  "z": 3

            }

        ]

        //object类型,保存的场景

          "scene": {

            //key值为对应的场景名字,value为场景参数值

            "保存的场景名字": [

                {

                      "w": 1280,

                      "h": 720,

                      "x": 1280,

                      "y": 0,

                      "v": 0,

                      "z": 0

                },

                {

                      "w": 1280,

                      "h": 720,

                      "x": 1280,

                      "y": 0,

                      "v": 0,

                      "z": 1

                },

                {

                      "w": 1280,

                      "h": 720,

                      "x": 1280,

                      "y": 0,

                      "v": 0,

                      "z": 2

                },

                {

                      "w": 1280,

                      "h": 720,

                      "x": 0,

                      "y": 0,

                      "v": 100,

                      "z": 3

                }

            ]

        }

    }

}

                                

 


2006 - 2019 aodianyun.com, All Rights Reserved. 奥点科技 版权所有 增值电信业务经营许可证:浙B2-20110306 浙ICP备07500424号-7 |

在线咨询

在线QQ

售前咨询400-963-9063

售后服务400-963-9063

留言咨询
咨询留言 X
姓名
电话
QQ
提  交