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