Web 直播推流 SDK API 文档

如果你是第一次使用neplayer,请先阅读 Web 直播推流 SDK 开发指南

1 HTML

<div id="my-publisher"></div>
<script src="//nos.netease.com/vod163/nePublisher.min.js"></script>
<script type="text/javascript">
var myPublisher = new nePublisher(idString, [viewOptions], [flashOptions], [initSuccessCallbackFun],[initErrorCallbackFun]);
</script>

2 Constructor

new nePublisher(idString, [viewOptions], [flashOptions], [initSuccessCallbackFun],[initErrorCallbackFun]);

Parameters

name type required description
idString String yes 推流器容器id
viewOptions Object no 推流初始化videoOptions参数,详情见下
flashOptions Object no 推流初始化flashOptions参数,详情见下
initSuccessCallbackFun Function no 初始化成功的回调函数,详情见下
initErrorCallbackFun Function no 初始化失败的回调函数,详情见下
// @params videoOptions
{
    videoWidth: 640,    // Number 可选 视频宽度 default 640
    videoHeight: 480,   // Number 可选 视频高度 default 480
    fps: 15,            // Number 可选 帧率 default 15
    bitrate: 600,       // Number 可选 码率 default 600
    video: true,       // Boolean 可选 是否推流视频 default true
    audio: true       // Boolean 可选 是否推流音频 default true
}

// @params flashOptions
{
    previewWindowWidth: 862,    // Number 可选 推流器宽度 default 862
    previewWindowHeight: 486,   // Number 可选 推流器高度 default 446

    /* String 可选 flash显示模式 default transparent
        'window' 窗口模式,flash影片是存在于Windows中的一个显示实例,独立于浏览器的HTML渲染层,总是会遮住位置与他重合的所有HTML层
        'opaque' 无窗口模式,flash影片是浏览器HTML渲染层中的一个元素,可以通过z-index来控制是否遮盖其他HTML元素
        'transparent' 透明模式,flash影片的背景色alpha值将为0,并且只会绘制stage上真实可见的对象,也可以通过z-index来控制是否遮盖其他HTML元素
    */
    wmode: 'transparent',

    /* String 可选 flash质量 default high
        'low'    低
        'medium' 中
        'high'   高(推荐)
        'best'   极高
     */
    quality: 'high',

    /* String 可选 flash执行脚本许可 default always
        'always' 总是允许flash执行js脚本
        'never' 总是禁止flash执行js脚本
        'samedomain' 只用当flash和js脚本来自同域时才允许flash执行js脚本
     */
    allowScriptAccess: 'always'
}

// @params initSuccessCallbackFun
function() {
    /*
        可在该回调中调用getCameraList和getMicroPhoneList方法获取 摄像头和麦克风列表
        cameraList = this.getCameraList();
        microPhoneList = this.getMicroPhoneList();
    */
}

// @params initErrorCallbackFun
function(code, desc) {
    /*
        @param code 错误代码
        @param desc 错误信息
        判断是否有错误代码传入检查初始化时是否发生错误
        若有错误可进行相应的错误提示
    */
}

3 Methods

请在推流器初始化完成后再调用api接口,推荐使用推流器的初始化成功回调函数。

3.1 获取摄像头列表

getCameraList() 功能:获取摄像头列表 参数:无 返回值:Array 摄像头列表数组

var cameraList = myPublisher.getCameraList();

3.2 获取麦克风列表

getMicroPhoneList() 功能:获取麦克风列表 参数:无 返回值:Array 麦克风列表数组

var microPhoneList = myPublisher.getMicroPhoneList();

3.3 获取错误信息对象

getDefinedErrors() 功能:获取错误对象信息 参数:无 返回值:Object 错误信息对象

var errorList = myPublisher.getDefinedErrors();

默认错误信息:

错误代码 错误信息
100 系统检测到您的摄像头异常,请确认正确连接摄像设备
101 系统检测您的麦克风异常,请确认正确连接麦克风设备
102 摄像头为禁用状态,推流时请允许flash访问摄像头
106 麦克风为禁用状态,推流时请允许flash访问麦克风
103 服务器关闭了连接
104 服务器连接失败
105 推流地址错误,请选择网易专用地址
199 未知错误

3.4 修改错误信息对象

alterDefinedErrors(errorObject) 功能:修改错误信息对象 参数:

name type required description
errorObject Object yes 要修改的错误信息对象,详情见下
@params errorObject
{
    '100': '您的摄像头异常,请确认正确连接摄像设备' //更改100错误代号对应的错误信息
}

返回值:无

myPublisher.alterDefinedErrors({'100':'您的摄像头异常,请确认正确连接摄像设备'});

3.5 获取sdk版本号

getSDKVersion() 功能:获取sdk版本号 参数:无 返回值:String

var sdkVersion = myPublisher.getSDKVersion();

3.6 开始预览

startPreview(cameraIndex) 功能:开始预览 参数:

name type required description
cameraIndex string yes 从getCameraList函数获取的摄像头列表中选择要预览的摄像头的索引

返回值:无

myPublisher.startPreview(cameraIndex);

3.7 设置推流摄像头

setCamera(cameraIndex) 功能:设置推流摄像头 参数:

name type required description
cameraIndex string yes 从getCameraList函数获取的摄像头列表中选择要推流的摄像头的索引

返回值:无

myPublisher.setCamera(cameraIndex);

3.8 设置推流麦克风

setMicroPhone(microPhoneIndex) 功能:设置推流麦克风 参数:

name type required description
microPhoneIndex string yes 从getMicroPhoneList函数获取的麦克风列表中选择要推流的麦克风的索引

返回值:无

myPublisher.setMicroPhone(microPhoneIndex);

3.9 开始推流

startPublish([url], [viewOptions], [errCallback]) 功能:开始推流 参数:

name type required description
url string yes 推流url地址 注意如果和构造类中的url参数不一致,以此参数为准
viewOptions Object no 推流初始化viewOptions参数对象,详情见下 注意此处设置的参数对象会覆盖掉构造类中初始化的videoOptions.对象
errCallback Function no 推流过程中发生错误的回调函数,详情见下
// @params viewOptions
{
    videoWidth: 640,    // Number 可选 推流视频宽度 default 640
    videoHeight: 480,   // Number 可选 推流视频高度 default 480
    fps: 15,            // Number 可选 推流帧率 default 15
    bitrate: 600,       // Number 可选 推流码率 default 600
    video: true,       // Boolean 可选 是否推流视频 default true
    audio: true       // Boolean 可选 是否推流音频 default true
}
// @params errCallback
function(code, desc) {
    /*
        @param code 错误代码
        @param desc 错误信息
        判断是否有错误代码传入推流过程中是否发生错误
        若有错误可进行相应的错误提示
    */
}

myPublisher.startPublish(
    'rtmp://pxxx.live.126.net/live/...',
    {
        videoWidth: 640,
        videoHeight: 480,
        fps: 15,
        bitrate: 600,
    }, function(code, desc) {
});

3.10 结束推流

stopPublish() 功能:停止推流 参数:无 返回值:无

myPublisher.stopPublish();