Class: Netcall

Netcall

new Netcall()

请使用 Netcall.getInstance 来初始化音视频.

Members

static,readonlyNetcall.CHAT_NET_STATUS_*

网络状态类型

  • Netcall.CHAT_NET_STATUS_VERY_GOOD 网络状态很好
  • Netcall.CHAT_NET_STATUS_GOOD 网络状态较好
  • Netcall.CHAT_NET_STATUS_BAD 网络状态较差
  • Netcall.CHAT_NET_STATUS_VERY_BAD 网络状态很差

static,readonlyNetcall.CHAT_VIDEO_FRAME_RATE_*

视频通话帧率,实际帧率因画面采集频率和机器性能限制可能达不到期望值

  • Netcall.CHAT_VIDEO_FRAME_RATE_NORMAL 视频通话帧率默认值 最大取每秒15帧
  • Netcall.CHAT_VIDEO_FRAME_RATE_5 视频通话帧率 最大取每秒5帧
  • Netcall.CHAT_VIDEO_FRAME_RATE_10 视频通话帧率 最大取每秒10帧
  • Netcall.CHAT_VIDEO_FRAME_RATE_15 视频通话帧率 最大取每秒15帧
  • Netcall.CHAT_VIDEO_FRAME_RATE_20 视频通话帧率 最大取每秒20帧
  • Netcall.CHAT_VIDEO_FRAME_RATE_25 视频通话帧率 最大取每秒25帧

static,readonlyNetcall.CHAT_VIDEO_QUALITY_*

视频通话分辨率

  • Netcall.CHAT_VIDEO_QUALITY_NORMAL 视频默认分辨率 480x320
  • Netcall.CHAT_VIDEO_QUALITY_LOW 视频低分辨率 176x144
  • Netcall.CHAT_VIDEO_QUALITY_MEDIUM 视频中分辨率 352x288
  • Netcall.CHAT_VIDEO_QUALITY_HIGH 视频高分辨率 480x320
  • Netcall.CHAT_VIDEO_QUALITY_480P 视频480p分辨率 640x480
  • Netcall.CHAT_VIDEO_QUALITY_720P 用于桌面分享级别的分辨率 1280x720 ,需要使用高清摄像头并指定对应的分辨率,或者自定义通道传输

static,readonlyNetcall.CHAT_VIDEO_SCALE_*

视频画面按比例裁剪,裁剪时不改变横竖屏,默认不裁剪

  • Netcall.CHAT_VIDEO_SCALE_None 长宽不裁剪,全部显示
  • Netcall.CHAT_VIDEO_SCALE_1x1 裁剪成1:1的形状
  • Netcall.CHAT_VIDEO_SCALE_4x3 裁剪成4:3的形状
  • Netcall.CHAT_VIDEO_SCALE_16x9 裁剪成16:9的形状

static,readonlyNetcall.CLIENT_TYPE_*

端类型

  • Netcall.CLIENT_TYPE_AOS Android
  • Netcall.CLIENT_TYPE_IOS iOS
  • Netcall.CLIENT_TYPE_PC pc
  • Netcall.CLIENT_TYPE_WINPHONE WinPhone
  • Netcall.CLIENT_TYPE_WEB web
  • Netcall.CLIENT_TYPE_REST rest

static,readonlyNetcall.DEVICE_TYPE_*

设备类型

  • Netcall.DEVICE_TYPE_AUDIO_IN 麦克风
  • Netcall.DEVICE_TYPE_AUDIO_OUT_LOCAL 用于播放自己声音的设备
  • Netcall.DEVICE_TYPE_AUDIO_OUT_CHAT 播放对方声音的扬声器
  • Netcall.DEVICE_TYPE_VIDEO 摄像头

static,readonlyNetcall.LAYOUT_*

直播推流布局

  • Netcall.LAYOUT_SPLITBOTTOMHORFLOATING 底部横排浮窗
  • Netcall.LAYOUT_SPLITTOPHORFLOATING 顶部横排浮窗
  • Netcall.LAYOUT_SPLITLATTICETILE 平铺
  • Netcall.LAYOUT_SPLITLATTICECUTTINGTILE 裁剪平铺

static,readonlyNetcall.NETCALL_CONTROL_COMMAND_*

控制指令

  • Netcall.NETCALL_CONTROL_COMMAND_NOTIFY_AUDIO_ON 通知对方自己打开了音频
  • Netcall.NETCALL_CONTROL_COMMAND_NOTIFY_AUDIO_OFF 通知对方自己关闭了音频
  • Netcall.NETCALL_CONTROL_COMMAND_NOTIFY_VIDEO_ON 通知对方自己打开了视频
  • Netcall.NETCALL_CONTROL_COMMAND_NOTIFY_VIDEO_OFF 通知对方自己关闭了视频
  • Netcall.NETCALL_CONTROL_COMMAND_SWITCH_AUDIO_TO_VIDEO 请求从音频切换到视频
  • Netcall.NETCALL_CONTROL_COMMAND_SWITCH_AUDIO_TO_VIDEO_AGREE 同意从音频切换到视频
  • Netcall.NETCALL_CONTROL_COMMAND_SWITCH_AUDIO_TO_VIDEO_REJECT 拒绝从音频切换到视频
  • Netcall.NETCALL_CONTROL_COMMAND_SWITCH_VIDEO_TO_AUDIO 从视频切换到音频
  • Netcall.NETCALL_CONTROL_COMMAND_BUSY 占线
  • Netcall.NETCALL_CONTROL_COMMAND_SELF_CAMERA_INVALID 自己的摄像头不可用
  • Netcall.NETCALL_CONTROL_COMMAND_SELF_ON_BACKGROUND 自己处于后台
  • Netcall.NETCALL_CONTROL_COMMAND_START_NOTIFY_RECEIVED 告诉发送方自己已经收到请求了(用于通知发送方开始播放提示音)
  • Netcall.NETCALL_CONTROL_COMMAND_NOTIFY_RECORD_START 告诉对方自己开始录制视频了
  • Netcall.NETCALL_CONTROL_COMMAND_NOTIFY_RECORD_STOP 告诉对方自己结束录制视频了

static,readonlyNetcall.NETCALL_TYPE_*

音视频通话类型

  • Netcall.NETCALL_TYPE_AUDIO 音频
  • Netcall.NETCALL_TYPE_VIDEO 视频

Methods

staticNetcall.getInstance(options)

此接口为单例模式

Params:
Name Type Description
options Object

配置参数

Name Type Default Description
kickLast Boolean false optional

是否踢掉上次的通话, 默认 false

nim NIM

NIM 实例

container Node

播放自己视频画面的容器节点

remoteContainer Node

播放对方画面的容器节点

mirror Boolean false optional

是否对自己的画面进行镜像处理, 默认 false

mirrorRemote Boolean false optional

是否对对方的画面进行镜像处理, 默认 false

heartbeat Boolean true optional

是否心跳(开发者调试用,为了避免断点调试导致心跳超时,正式版本请勿设置)

call(options){Promise}

发起音视频呼叫

Params:
Name Type Description
options Object

配置参数

Name Type Description
type Number

通话类型

account String

对方账号

pushConfig Object optional

推送配置

Name Type Default Description
enable Boolean true optional

是否需要推送, 默认 true

needBadge Boolean true optional

是否需要角标计数, 默认 true

needPushNick Boolean true optional

是否需要推送昵称, 默认 true

pushContent String optional

推送内容

custom String optional

自定义通知数据

pushPayload String optional

JSON格式的推送 payload

sound String optional

推送声音

sessionConfig Object optional

会话配置

Name Type Default Description
videoQuality Number optional

视频分辨率,实际帧率因画面采集频率和机器性能限制可能达不到期望值

videoFrameRate Number optional

视频帧率

videoBitrate Number optional

视频码率, >=100000 <= 5000000 有效

highAudio Boolean false optional

高清语音开关, 默认关闭

recordVideo Boolean false optional

视频录制开关, 默认关闭

recordAudio Boolean false optional

音频录制开关, 默认关闭

Returns:
Type Description
Promise

control(options){Void}

发送音视频通话控制指令

Params:
Name Type Default Description
options Object {}

配置参数

Name Type Description
channelId String optional

要发送指令的通话的 channelId, 如果不填那么默认为当前通话

command Number optional

可选控制指令请参考 Netcall.NETCALL_CONTROL_COMMAND_*

Returns:
Type Description
Void

createChannel(options){Promise}

创建频道

Params:
Name Type Description
options Object

配置参数

Name Type Description
channelName Number

频道名称

custom String

扩展字端(用于上层放自定义数据,选填)

Returns:
Type Description
Promise

getAccount(){String}

获取当前登录的 IM 账号

Returns:
Type Description
String

getStartedDeviceOfType(type){Void}

获取当前开启的指定类型的设备

Params:
Name Type Description
type String

可选设备类型请参考 Netcall.DEVICE_TYPE_*

Returns:
Type Description
Void

getStoredDevicesOfType(type){Void}

获取已经存储的指定类型的所有设备

Params:
Name Type Description
type Number

可选设备类型请参考 Netcall.DEVICE_TYPE_*

Returns:
Type Description
Void

hangup(channelId){Void}

挂断音视频通话

Params:
Name Type Description
channelId String optional

要挂断的通话的 channelId, 如果不填那么挂断当前通话

Returns:
Type Description
Void

hasDevicesOfType(type){Void}

是否有指定类型的设备

Params:
Name Type Description
type String

可选设备类型请参考 Netcall.DEVICE_TYPE_*

Returns:
Type Description
Void

hasStartedDeviceOfType(type){Boolean}

当前是否有开启指定类型的设备

Params:
Name Type Description
type String

可选设备类型请参考 Netcall.DEVICE_TYPE_*

Returns:
Type Description
Boolean

initSignal(){Promise}

初始化信令

  • 信令通道初始化完毕之后, 开发者可以启用音视频相关的 UI, 比如说展示呼叫别人的按钮
  • 信令通道初始化失败的时候, 请展示错误并禁用所有音视频相关的 UI
  • 初始化过程中会通过 devices 事件回传所有的设备列表
  • 当信令通道断开时, 会触发 signalClosed 事件
  • 设备状态的错误类型约定:
    device_busy: 设备被占用
    agent_update: 插件有更新
    agent_empty: 没有安装插件
Returns:
Type Description
Promise

isCurrentChannelId(){Boolean}

是当前会话的 channelId

Returns:
Type Description
Boolean

joinChannel(options){Promise}

主动加入频道

Params:
Name Type Description
options Object

音视频相关配置参数

Name Type Description
channelName String

频道名称

type Number

通话类型

option.liveEnable String

是否开启旁路直播,可选 true / false(默认不开启)

options.sessionConfig Object

会话配置

Name Type Default Description
videoQuality Number

视频分辨率,实际帧率因画面采集频率和机器性能限制可能达不到期望值

videoFrameRate Number

视频帧率

videoBitrate Number

视频码率, >=100000 <= 5000000 有效

highAudio Boolean false

高清语音开关, 默认关闭

recordVideo Boolean false

视频录制开关, 默认关闭

recordAudio Boolean false

音频录制开关, 默认关闭

bypassRtmp Boolean false

推流开关, 默认关闭,推流相关配置前提开关打开

rtmpUrl Boolean

推流地址

rtmpRecord Boolean false

推流录制开关, 默认关闭

splitMode Boolean

推流的布局, 布局类型默认平铺

Returns:
Type Description
Promise

leaveChannel(){Promise}

离开频道

Returns:
Type Description
Promise

netDetect(){Void}

网络探测

Returns:
Type Description
Void

notCurrentChannelId(){Boolean}

不是当前会话的 channelId

Returns:
Type Description
Boolean

response(options){Promise}

响应音视频被呼叫

调用此接口前需要先初始化信令

Params:
Name Type Default Description
options Object {} optional

配置参数

Name Type Default Description
accepted Boolean true optional

true 接听, false 拒绝

beCalledInfo Object

被呼叫的信息, 在 beCalling 事件里可以接收到的信息

sessionConfig Object optional

会话配置

Name Type Description
videoQuality Number optional

视频分辨率

recordVideo Boolean optional

视频录制开关

recordAudio Boolean optional

音频录制开关

Returns:
Type Description
Promise

resumeLocalStream(){Void}

继续播放自己的视频画面 #废弃

Returns:
Type Description
Void

resumeRemoteStream(){Void}

继续播放对方的视频画面 #废弃 请使用startRemoteStream

Returns:
Type Description
Void

setAudioBlack(account){Void}

设置目标静音

Params:
Name Type Description
account Number

账号

Returns:
Type Description
Void

setAudioStart(account){Void}

设置目标非静音

Params:
Name Type Description
account Number

账号

Returns:
Type Description
Void

setCaptureVolume(num){Void}

设置采集音量

Params:
Name Type Description
num Number

音量大小, 0-255

Returns:
Type Description
Void

setPlayVolume(num){Void}

设置播放音量

Params:
Name Type Description
num Number

音量大小, 0-255

Returns:
Type Description
Void

setVideoScale(options){Promise}

裁剪画面尺寸和比例: 不裁剪 / 1:1 / 4:3 / 16 : 9

Params:
Name Type Default Description
options Object {}

配置参数

Name Type Default Description
account String

对象账号,不填操作全部远程流

type Number Netcall.CHAT_VIDEO_SCALE_None optional

裁剪比例,默认不裁剪,选值类型请参考 Netcall.CHAT_VIDEO_SCALE_*

Returns:
Type Description
Promise

setVideoViewRemoteSize(options){Promise}

设置对方画面的尺寸

最终显示的画面不大于所设置的宽和高

Params:
Name Type Default Description
options Object {}

配置参数

Name Type Default Description
account String

对象账号,不填操作全部远程流

width Number

宽度

height Number

高度

cut Number true optional

是否需要剪裁, 默认按1:1比例剪裁

Returns:
Type Description
Promise

setVideoViewSize(options){Promise}

设置自己画面的尺寸

最终显示的画面不大于所设置的宽和高

Params:
Name Type Default Description
options Object {}

配置参数

Name Type Default Description
width Number

宽度

height Number

高度

cut Number true optional

是否需要剪裁, 默认按1:1比例剪裁

Returns:
Type Description
Promise

startDevice(options){Void}

开启设备

Params:
Name Type Description
options Object

配置参数

Name Type Description
type Number

设备类型

device Object optional

设备, 如果没有指定, 那么开启该类型的第一个设备

width Number optional

如果启动视频设备, 设置摄像头捕获的视频的最大宽度

height Number optional

如果启动视频设备, 设置摄像头捕获的视频的最大高度

Returns:
Type Description
Void

startLocalStream(node){Void}

开启本地视频流

Params:
Name Type Description
node Node

本地视频流节点 可选

Returns:
Type Description
Void

startRecordAac(options){Promise}

混音本地录制(所有流一起录)

Params:
Name Type Description
options Object
Name Type Description
path String

路径地址 如E:\wenjian\abc.aac

Returns:
Type Description
Promise

startRecordMp4(options, {String){Void}

本地录制(录自己) 请监听recordMp4事件为正式开始录制回调 netcall.on('recordMp4',function(data){})

Params:
Name Type Description
options Object
{String

options.path 路径地址 如E:\wenjian\abc.mp4

Returns:
Type Description
Void

startRemoteStream(){Void}

开启远程视频流

Returns:
Type Description
Void

stopDevice(type){Void}

停止指定类型的设备

Params:
Name Type Description
type String

可选设备类型请参考 Netcall.DEVICE_TYPE_*

Returns:
Type Description
Void

stopRecordAac(){Promise}

停止混音本地录制

Returns:
Type Description
Promise

stopRecordMp4(){Promise}

停止本地录制(录自己)

Returns:
Type Description
Promise

stopRemoteStream(account){Void}

关闭远程视频流

Params:
Name Type Description
account String

对应的nim账号 (不填移除所有)

Returns:
Type Description
Void

stopSignal(){Promise}

停止信令通道

Returns:
Type Description
Promise

suspendLocalStream(){Void}

暂停播放自己的视频画面 #废弃

Returns:
Type Description
Void

suspendRemoteStream(){Void}

暂停播放对方的视频画面 #废弃 请使用stopRemoteStream

Returns:
Type Description
Void

switchAudioToVideo(){Void}

从音频模式切换为视频模式

Returns:
Type Description
Void

switchVideoToAudio(){Void}

从视频模式切换为音频模式

Returns:
Type Description
Void

updateRtmpUrl(url){Promise}

更新推流地址

Params:
Name Type Description
url String

新地址

Returns:
Type Description
Promise