- mapleRTC
- 接口调用流程图
- 音频,基础接口类
- 初始化函数(initialize)
- 设置频道属性(setChannelProfile)
- 设置视频会议属性(setVideoConferenceProfile)
- 设置媒体属性(setMediaProfile)
- 设置加入频道用户Id(setJoinChannelUserId)
- 设置参数(setParameter)
- 查询SDK版本号(getSdkVersion)
- 带uid加入频道(joinChannel)
- 离开频道(leaveChannel)
- 将自己禁音(muteLocalAudioStream)
- 静音指定用户音频(muteRemoteAudioStream)
- 打开外放扬声器模式(setEnableSpeakerphone)
- 调节播放信号音量(adjustPlaybackSignalVolume)
- 调节录制信号音量(adjustRecordingSignalVolume)
- 启用说话音量提示(enableAudioVolumeIndication)
- 视频接口类
- 设置本地视频显示区域(setupLocalVideo)
- 调整 frame 到前面(bringFrameToFront)
- 设置远端视频显示区域(setupRemoteVideo)
- 启动本地视频预览(startPreview)
- 停止本地视频预览(stopPreview)
- 暂停/恢复发送本地视频流(muteLocalVideoStream)
- 切换前置后置摄像头(switchCamera)
- 开关摄像头闪光灯(setCameraTorchOn)
- 暂停/恢复指定远端视频流(muteRemoteVideoStream)
- 暂停/恢复指定远端视频流(muteRemoteVideoStream2)
- 设置视频美颜等级(setBeautifyLevel)
- 开关视频美颜功能(enableBeautify)
- 开关前置摄像头输出镜像(enableFrontOutputMirror)
- 媒体播放接口类
- 监听事件接口类
- 监听事件
- 加入频道成功监听事件(joinChannelSuccessListener)
- 加入频道失败监听事件(joinChannelFailedListener)
- 连接丢失监听事件(connectionLostListener)
- 离开频道监听事件(leaveChannelListener)
- 强行踢下线监听事件(forceKickOutChannelListener)
- 远端第一视频帧尺寸变化监听事件(firstRemoteVideoFrameSizeChangedListener)
- 本地音量监听事件(audioVolumeIndicationListener)
- 用户加入频道监听事件(userJoinedNoticeListener)
- 用户离开当前频道监听事件(userOfflineNoticeListener)
- 媒体播放结束监听事件(mediaStopListener)
- 警告监听事件(warningListener)
- 错误监听事件(errorListener)
- 回调状态码
mapleRTC
来自于:蓝蘑云 立即使用
简介:
maple-rtc 为蓝蘑云推出的实时音视频系统,包括了实时音频,视频,变声,美颜等功能,适用于娱乐,游戏,教育等实时场景中;Maple-RTC支持快速私有化部署,一键部署上线。
一:下载SDK
1.1 apiCloud音视频SDK
maple-rtc media apicloud sdk 目录结构如下:
1.2 apiCloud音视频demo源码下载
演示的apiCloud 音视频demo源码自行前往github下载;
该demo包括master和1v1sample两个分支,如果您场景为1对1视频通话,请参考1v1sample分支。
Maple支持1对1和多人实时模式,使用时请注意区分。
三:基本API说明
本模块包括以下接口类:
音频基础接口类:使用此类接口无需关心 UI 界面层,只需按照蓝蘑云的规范要求设计自己的代码逻辑即可。
视频接口类:该类接口的 setupLocalVideo 和 setupRemoteVideo 将打开一个 frame 层添加到 windows 上,以实现视频通话的功能。
监听事件类:包括所有底层回调给应用层的事件行为。
注意:
接口调用流程图
音频调用接口流程图:
视频调用接口流程图:
音频,基础接口类
- initialize
- setChannelProfile
- setVideoConferenceProfile
- setMediaProfile
- setJoinChannelUserId
- setParameter
- getSdkVersion
- joinChannel
- leaveChannel
- muteLocalAudioStream
- muteRemoteAudioStream
- setEnableSpeakerphone
- adjustPlaybackSignalVolume
- adjustRecordingSignalVolume
- enableAudioVolumeIndication
初始化函数(initialize)
initialize({params})
该方法用于初始化SDK。
注意事项:
- 如果在config.xml文件中配置了appId信息,那么在模块初始化的时候底层会自动调用此接口,无需再手动调用该接口。
params
appId:
- 类型:字符串
- 默认值:无
- 描述:蓝蘑云后台管理中的appId
示例代码
var maplertc = api.require('mapleRTC');
maplertc.initialize({appId: "46712182****11"});
设置频道属性(setChannelProfile)
setChannelProfile({params}, callback(ret))
该方法用于设置频道模式(profile).
注意事项:
- 同一频道内只能同时设置一种模式;
- 该方法必须在加入频道前调用和进行设置,进入频道后无法再设置;
params
profile:
- 类型:字符串
- 默认值:”voiceOnly”
- 描述:频道模式,”voiceOnly” 纯语音模式,”voiceAndVideo” 语音视频模式,”liveLook” 直播观看模式,
callback(ret)
ret:
- 类型:JSON对象
内部字段:
{
status: true //布尔类型;true||false,是否设置成功;
}
示例代码
var maplertc = api.require('mapleRTC');
maplertc.setChannelProfile({profile: "voiceAndVideo"}, function(ret) {
api.toast({msg:JSON.stringify(ret)});
});
设置视频会议属性(setVideoConferenceProfile)
setVideoConferenceProfile({params}, callback(ret))
该方法用于设置视频会议属性(profile).
注意事项:
- 同一频道内只能同时设置一种模式;
- 加入房间成功后,默认情况为服务器端转发模式(sfu);
- 该方法必须在加入频道前调用和进行设置,进入频道后无法再设置;
- 如果应用场景为1v1两人视频通话,建议用sfu模式,延时和画质更好;
params
profile:
- 类型:字符串
- 默认值:”sfu”
- 描述:频道模式,”sfu” 服务器端转发模式,”mcu” 服务器端混屏模式,当前只支持4路窗口混屏,
callback(ret)
ret:
- 类型:JSON对象
内部字段:
{
status: true //布尔类型;true||false,是否设置成功;
}
示例代码
var maplertc = api.require('mapleRTC');
maplertc.setVideoConferenceProfile({profile: 'mcu'}, function(ret) {
api.toast({msg:JSON.stringify(ret)});
});
设置媒体属性(setMediaProfile)
setMediaProfile({params}, callback(ret))
该方法用于设置媒体模式.
注意事项:
- 同一频道内只能同时设置一种媒体模式;
params
audioProfile:
- 类型:字符串
- 默认值:”voiceStandard”
- 描述:音频模式,”voiceStandard” voice标准模式,”voiceHighQuality” voice高质量模式,”musicStandard” music标准模式,”musicHighQuality” music高质量模式;
videoProfile:
- 类型:字符串
- 默认值 : “360P”
- 描述:视频模式,”240P” 320240分辨率,”360P” 640360分辨率,”480P” 640*480分辨率,
callback(ret)
ret:
- 类型:JSON对象
内部字段:
{
status: true //布尔类型;true||false,是否设置成功;
}
示例代码
var maplertc = api.require('mapleRTC');
maplertc.setMediaProfile({audioProfile: "voiceHighQuality", videoProfile: "480P"}, function(ret) {
api.toast({msg:JSON.stringify(ret)});
});
设置加入频道用户Id(setJoinChannelUserId)
setJoinChannelUserId({params}, callback(ret))
该方法用于设置加入频道用户Id,
注意事项:
- 加入频道的用户Id必须在整个appId中唯一,相同的用户Id登录会被对方踢下线;
- 用户Id为字符串,长度为小于等于32个字符;
- 该方法必须在加入频道前调用和进行设置,进入频道后无法再设置;
params
userId:
- 类型:字符串
- 默认值:无
- 描述:加入频道的用户Id
callback(ret)
ret:
- 类型:JSON对象
内部字段:
{
status: true //布尔类型;true||false,是否设置成功;
}
示例代码
var maplertc = api.require('mapleRTC');
maplertc.setJoinChannelUserId({userId: 'abcd'}, function(ret) {
api.toast({msg:JSON.stringify(ret)});
});
设置参数(setParameter)
setParameter({params})
该方法用于设置SDK特殊的参数;
params
key:
- 类型:字符串常量
- 默认值:无
- 描述:参数名字
value:
- 类型:字符串常量
- 默认值:无
- 描述:参数值
callback(ret)
无
示例代码
var maplertc = api.require('mapleRTC');
maplertc.setParameter({name : 'abc', value : 'abc'});
查询SDK版本号(getSdkVersion)
getSdkVersion(callback(ret))
该方法返回SDK版本号。
params
无
callback(ret)
ret:
- 类型:JSON对象
内部字段:
{
version: 200 //int类型;sdk版本号;
}
示例代码
var maplertc = api.require('mapleRTC');
maplertc.getSdkVersion(function(ret) {
api.toast({msg:JSON.stringify(ret)});
});
带uid加入频道(joinChannel)
joinChannel({params}, callback(ret))
该方法允许用户加入频道。如果频道尚未建立,调用该方法可以自动创建频道。 同一个频道内的用户可以互相通话,多个用户加入同一个频道,可以群聊。使用不同 App ID 的应用程序是不能互通的。如果已在通话中,用户必须调用 leaveChannel() 退出当前通话,才能进入下一个频道。
注意事项:
- 该 userId 不能与AppId内现有的其他用户 userId 相同,否则AppId内持有相同 userId 用户的服务将被迫停止。
- userId 属性限制于setJoinChannelUserId(const char* uid)参数userId一样。
- 加入频道后,扬声器和麦克风默认打开;摄像头预览默认关闭;
params
channelId:
- 类型:字符串常量
- 默认值:无
- 描述:加入频道Id
userId:
- 类型:字符串常量
- 默认值:无
- 描述:加入频道的用户Id
callback(ret)
ret:
- 类型:JSON对象
内部字段:
{
status: true //布尔类型;true||false,是否加入频道成功;
}
示例代码
var maplertc = api.require('mapleRTC');
maplertc.joinChannel({channelId : '123', userId: 'abcdefg'}, function(ret) {
api.toast({msg:JSON.stringify(ret)});
});
离开频道(leaveChannel)
leaveChannel({params}, callback(ret))
该方法为用户离开频道,即挂断或退出通话。通过调用 joinChannel 加入频道后,必须调用 leaveChannel() 以结束通话,否则不能进行下一次通话。 不管当前是否在通话中,都可以调用 leaveChannel(),没有副作用。leaveChannel() 会把会话相关的所有资源释放掉。
params
无
callback(ret)
ret:
- 类型:JSON对象
内部字段:
{
status: true //布尔类型;true||false,是否离开频道成功;
}
示例代码
var maplertc = api.require('mapleRTC');
maplertc.leaveChannel(function(ret) {
api.toast({msg:JSON.stringify(ret)});
});
将自己禁音(muteLocalAudioStream)
muteLocalAudioStream({params}, callback(ret))
静音/取消静音。调用该方法后,在同一频道内的其他用户将无法听到你的声音;
params
muted:
- 类型:布尔型
- 默认值:无
- 描述:true 设置本地静音,即麦克风静音; false 取消本地静音;
callback(ret)
ret:
- 类型:JSON对象
内部字段:
{
status: true //布尔类型;true||false,是否调用成功;
}
示例代码
var maplertc = api.require('mapleRTC');
maplertc.muteLocalAudioStream({muted : true}, function(ret) {
api.toast({msg:JSON.stringify(ret)});
});
静音指定用户音频(muteRemoteAudioStream)
muteRemoteAudioStream({params}, callback(ret))
该方法用于允许/禁止播放远端指定用户的音频流。没有被禁止用户的音频流接受和播放正常;
params
userId:
- 类型:字符串常量
- 默认值:无
- 描述:加入频道的用户Id
muted:
- 类型:布尔型
- 默认值:无
- 描述:true 停止播放指定用户的音频流; false 允许播放指定用户的音频流;
callback(ret)
ret:
- 类型:JSON对象
内部字段:
{
status: true //布尔类型;true||false,是否调用成功;
}
示例代码
var maplertc = api.require('mapleRTC');
maplertc.muteRemoteAudioStream({userId : 'abc', muted : true}, function(ret) {
api.toast({msg:JSON.stringify(ret)});
});
打开外放扬声器模式(setEnableSpeakerphone)
setEnableSpeakerphone({params}, callback(ret))
该方法用于打开/关闭外放扬声器模式,即听筒和扬声器播放的切换;
params
enabled:
- 类型:布尔型
- 默认值:无
- 描述:true 切换至外放扬声器模式; false 切换至听筒模式;
callback(ret)
ret:
- 类型:JSON对象
内部字段:
{
status: true //布尔类型;true||false,是否调用成功;
}
示例代码
var maplertc = api.require('mapleRTC');
maplertc.setEnableSpeakerphone({enabled : true}, function(ret) {
api.toast({msg:JSON.stringify(ret)});
});
调节播放信号音量(adjustPlaybackSignalVolume)
adjustPlaybackSignalVolume({params}, callback(ret))
该方法用于调节播放信号音量;软件调节播放信号音量,默认值为100(原始音量),最大调整为200(即原始音量的2倍),如果为小于等于0,即软件级静音,无法听到任何远端音频流;
params
volume:
- 类型:int
- 默认值:100
- 描述:软件调节播放信号音量,默认值为100(原始音量),最大调整为200(即原始音量的2倍),如果为小于等于0,即软件级静音,无法听到任何远端音频流;
callback(ret)
ret:
- 类型:JSON对象
内部字段:
{
status: true //布尔类型;true||false,是否调用成功;
}
示例代码
var maplertc = api.require('mapleRTC');
maplertc.adjustPlaybackSignalVolume({volume : 50}, function(ret) {
api.toast({msg:JSON.stringify(ret)});
});
调节录制信号音量(adjustRecordingSignalVolume)
adjustRecordingSignalVolume({params}, callback(ret))
该方法用于调节录制信号音量(即麦克风采样音量);软件调节录制信号音量,默认值为100(原始音量),最大调整为400(即原始音量的4倍),如果为小于等于0,即软件级静音,远端用户无法听到您的声音;
params
volume:
- 类型:int
- 默认值:100
- 描述:软件调节录制信号音量,默认值为100(原始音量),最大调整为400(即原始音量的4倍),如果为小于等于0,即软件级静音,远端用户无法听到您的声音;
callback(ret)
ret:
- 类型:JSON对象
内部字段:
{
status: true //布尔类型;true||false,是否调用成功;
}
示例代码
var maplertc = api.require('mapleRTC');
maplertc.adjustRecordingSignalVolume({volume : 50}, function(ret) {
api.toast({msg:JSON.stringify(ret)});
});
启用说话音量提示(enableAudioVolumeIndication)
enableAudioVolumeIndication({params}, callback(ret))
该方法允许 SDK 定期向应用程序反馈当前房间里所有说话人状态。
注意事项:
- 在audioVolumeIndicationListener 回调事件中获得相关音量信息;
params
interval:
- 类型:int
- 默认值:无
- 描述:指定音量提示的时间间隔。<20: 禁用音量提示功能 >=20: 提示间隔,单位为毫秒。建议设置到大于 500 毫秒
callback(ret)
ret:
- 类型:JSON对象
内部字段:
{
status: true //布尔类型;true||false,是否调用成功;
}
示例代码
var maplertc = api.require('mapleRTC');
maplertc.enableAudioVolumeIndication({interval : 500}, function(ret) {
api.toast({msg:JSON.stringify(ret)});
});
视频接口类
- setupLocalVideo
- bringFrameToFront
- setupRemoteVideo
- startPreview
- stopPreview
- muteLocalVideoStream
- switchCamera
- setCameraTorchOn
- muteRemoteVideoStream
- muteRemoteVideoStream2
- setBeautifyLevel
- enableBeautify
- enableFrontOutputMirror
设置本地视频显示区域(setupLocalVideo)
setupLocalVideo({params}, callback(ret))
该方法用于设置本地视频显示区域。
params
localView:
- 类型:json对象
- 默认值:无
- 描述:表示本地视频的窗口参数;如果为‘’,取消本地视频显示区域;
内部字段:
{
fixedOn:"frame", //字符串类型,模块视图添加指定frame的名称
fixed:true //布尔类型,是否随窗口一起滚动,默认true(不随之滚动)
}
callback(ret)
ret:
- 类型:JSON对象
内部字段:
{
status: true //布尔类型;true||false,是否调用成功;
}
示例代码
var maplertc = api.require('mapleRTC');
maplertc.setupLocalVideo({localView: {fixedOn: 'frm_float'}}, function(ret) {
api.toast({msg:JSON.stringify(ret)});
});
调整 frame 到前面(bringFrameToFront)
bringFrameToFront({params}, callback(ret))
该方法用于调整 frame 到前面。(仅支持android)
params
from:
- 类型:字符串
- 默认值:无
- 描述:待调整显示顺序的 frame 名字;
to:
- 类型:字符串
- 默认值:无
- 描述:frame 名字,调整 from 对应 frame 到此 frame 前面;
callback(ret)
ret:
- 类型:JSON对象
内部字段:
{
status: true //布尔类型;true||false,是否调用成功;
}
示例代码
var maplertc = api.require('mapleRTC');
maplertc.bringFrameToFront({ from: 'frm_local', to: 'frm_remote'}, function(ret) {
api.toast({msg:JSON.stringify(ret)});
});
设置远端视频显示区域(setupRemoteVideo)
setupRemoteVideo({params}, callback(ret))
该方法用于设置远端视频显示区域。
params
remoteView:
- 类型:json对象
- 默认值:无
- 描述:表示远端视频的窗口参数;如果为‘’,取消远端视频显示区域;
内部字段:
{
fixedOn:"frame", //字符串类型,模块视图添加指定frame的名称
fixed:true //布尔类型,是否随窗口一起滚动,默认true(不随之滚动)
}
userId:
- 类型:字符串常量
- 默认值:无
- 描述:远端用户Id
callback(ret)
ret:
- 类型:JSON对象
内部字段:
{
status: true //布尔类型;true||false,是否调用成功;
}
示例代码
var maplertc = api.require('mapleRTC');
maplertc.setupRemoteVideo({remoteView: {fixedOn: 'frm_float'}, userId : 'abc'}, function(ret) {
api.toast({msg:JSON.stringify(ret)});
});
启动本地视频预览(startPreview)
startPreview(callback(ret))
该方法用于启动本地视频预览;
注意事项:
- 在启动预览前,必须先调用setupLocalVideo设置预览窗口及属性;
- 该方法必须在加入频道joinChannel后才可以开启预览,进入频道前无法调用;
- 在退出频道leaveChannel后,本地预览将自动关闭;
params
无;
callback(ret)
ret:
- 类型:JSON对象
内部字段:
{
status: true //布尔类型;true||false,是否调用成功;
}
示例代码
var maplertc = api.require('mapleRTC');
maplertc.startPreview(function(ret) {
api.toast({msg:JSON.stringify(ret)});
});
停止本地视频预览(stopPreview)
stopPreview(callback(ret))
该方法用于停止本地视频预览;
注意事项:
- 该方法必须在加入频道joinChannel后才可以调用,进入频道前无法调用;
- 在退出频道leaveChannel后,该方法自动调用,无需额外手动操作关闭预览;
- 如果已经调用了muteLocalVideoStream 开始发送本地视频,调用该方法后,视频也将停止发送,再次开始本地预览后,需要手动调用发送本地视频;
params
无;
callback(ret)
ret:
- 类型:JSON对象
内部字段:
{
status: true //布尔类型;true||false,是否调用成功;
}
示例代码
var maplertc = api.require('mapleRTC');
maplertc.stopPreview(function(ret) {
api.toast({msg:JSON.stringify(ret)});
});
暂停/恢复发送本地视频流(muteLocalVideoStream)
muteLocalVideoStream({params},callback(ret))
该方法用于允许/禁止往网络发送本地视频流;
注意事项:
- 必须先调用startPreview后,调用该方法才有效;
- 如果已经调用了该方法开始发送本地视频,调用stopPreview后,视频也将停止发送,再次开始本地预览后,需要手动调用该方法来发送本地视频;
- 在退出频道leaveChannel后,该方法自动调用,无需额外手动停止发送本地视频;
params
muted:
- 类型:布尔型
- 默认值:无
- 描述:true 停止发送本地视频流; false 开始发送本地视频流;
callback(ret)
ret:
- 类型:JSON对象
内部字段:
{
status: true //布尔类型;true||false,是否调用成功;
}
示例代码
var maplertc = api.require('mapleRTC');
maplertc.muteLocalVideoStream({muted:false}, function(ret) {
api.toast({msg:JSON.stringify(ret)});
});
切换前置后置摄像头(switchCamera)
switchCamera(callback(ret))
该方法用于切换前置后置摄像头;
注意事项:
- 必须先调用startPreview后,调用该方法才有效;
- 开启本地预览后,默认为前置摄像头;
- 在退出频道leaveChannel后,自动恢复到默认的前置摄像头;
params
无
callback(ret)
ret:
- 类型:JSON对象
内部字段:
{
status: true //布尔类型;true||false,是否调用成功;
}
示例代码
var maplertc = api.require('mapleRTC');
maplertc.switchCamera(function(ret) {
api.toast({msg:JSON.stringify(ret)});
});
开关摄像头闪光灯(setCameraTorchOn)
setCameraTorchOn({params}, callback(ret))
该方法用于开关摄像头闪光灯;
注意事项:
- 必须先调用startPreview后,调用该方法才有效;
- 在退出频道leaveChannel后,自动关闭摄像头闪光灯;
params
enabled:
- 类型:布尔型
- 默认值:无
- 描述:true 打开摄像头闪光灯; false 关闭摄像头闪光灯;
callback(ret)
ret:
- 类型:JSON对象
内部字段:
{
status: true //布尔类型;true||false,是否调用成功;
}
示例代码
var maplertc = api.require('mapleRTC');
maplertc.setCameraTorchOn({enabled : true}, function(ret) {
api.toast({msg:JSON.stringify(ret)});
});
暂停/恢复指定远端视频流(muteRemoteVideoStream)
muteRemoteVideoStream({params}, callback(ret))
该方法用于允许/禁止播放指定远端视频流;
注意事项:
- 在退出频道leaveChannel后,自动禁止播放指定远端视频流;
- 该接口只能在视频会议属性sfu模型下,才可以被调用,设置视频会议属性接口参考setVideoConferenceProfile;
params
userId:
- 类型:字符串常量
- 默认值:无
- 描述:远端用户Id
muted:
- 类型:布尔型
- 默认值:无
- 描述:true 停止播放指定用户的视频流; false 允许播放指定用户的视频流;
callback(ret)
ret:
- 类型:JSON对象
内部字段:
{
status: true //布尔类型;true||false,是否调用成功;
}
示例代码
var maplertc = api.require('mapleRTC');
maplertc.muteRemoteVideoStream({userId : 'abc', muted : false}, function(ret) {
api.toast({msg:JSON.stringify(ret)});
});
暂停/恢复指定远端视频流(muteRemoteVideoStream2)
muteRemoteVideoStream2({params}, callback(ret))
该方法用于允许/禁止播放指定远端视频流;
注意事项:
- 在退出频道leaveChannel后,自动禁止播放指定远端视频流;
- 该接口只能在视频会议属性mcu模型下,才可以被调用,设置视频会议属性接口参考setVideoConferenceProfile;
- 该接口默认小于等于4人通话视频显示,cpu使用会更低;
params
userId:
- 类型:字符串常量
- 默认值:无
- 描述:远端用户Id
muted:
- 类型:布尔型
- 默认值:无
- 描述:true 停止播放指定用户的视频流; false 允许播放指定用户的视频流;
callback(ret)
ret:
- 类型:JSON对象
内部字段:
{
status: true //布尔类型;true||false,是否调用成功;
}
示例代码
var maplertc = api.require('mapleRTC');
maplertc.muteRemoteVideoStream2({userId : 'abc', muted : false}, function(ret) {
api.toast({msg:JSON.stringify(ret)});
});
设置视频美颜等级(setBeautifyLevel)
setBeautifyLevel({params}, callback(ret))
该方法用于设置视频美颜等级;
注意事项:
- 在退出频道leaveChannel后,自动关闭视频美颜功能;
params
level:
- 类型:浮点数
- 默认值:无
- 描述:参数值范围为0.0~1.0,0.0为无美颜;
callback(ret)
ret:
- 类型:JSON对象
内部字段:
{
status: true //布尔类型;true||false,是否调用成功;
}
示例代码
var maplertc = api.require('mapleRTC');
maplertc.setBeautifyLevel({level : 0.5}, function(ret) {
api.toast({msg:JSON.stringify(ret)});
});
开关视频美颜功能(enableBeautify)
enableBeautify({params}, callback(ret))
该方法用于打开/关闭视频美颜功能;
注意事项:
- 在退出频道leaveChannel后,自动关闭视频美颜功能;
params
enabled:
- 类型:布尔型
- 默认值:无
- 描述:true 打开视频美颜; false 关闭视频美颜;
callback(ret)
ret:
- 类型:JSON对象
内部字段:
{
status: true //布尔类型;true||false,是否调用成功;
}
示例代码
var maplertc = api.require('mapleRTC');
maplertc.enableBeautify({enabled : false}, function(ret) {
api.toast({msg:JSON.stringify(ret)});
});
开关前置摄像头输出镜像(enableFrontOutputMirror)
enableFrontOutputMirror({params}, callback(ret))
该方法用于打开/关闭前置摄像头输出镜像;
注意事项:
- 在退出频道leaveChannel后,自动关闭镜像功能;
params
enabled:
- 类型:布尔型
- 默认值:false 关闭
- 描述:true 打开镜像; false 关闭镜像;
callback(ret)
ret:
- 类型:JSON对象
内部字段:
{
status: true //布尔类型;true||false,是否调用成功;
}
示例代码
var maplertc = api.require('mapleRTC');
maplertc.enableFrontOutputMirror({enabled : false}, function(ret) {
api.toast({msg:JSON.stringify(ret)});
});
媒体播放接口类
- startPlayMedia
- stopPlayMedia
- pausePlayMedia
- mutePlayMedia
- adjustPlayMediaVolume
- setPlayMediaPosition
- getPlayMediaTotalDuration
- getPlayMediaCurrentPosition
开始播放媒体文件(startPlayMedia)
startPlayMedia({params}, callback(ret))
该方法用于开始播放媒体文件;
注意事项:
- 该方法必须在加入频道joinChannel后才可以调用,进入频道前无法调用;
params
path:
- 类型:字符串常量
- 默认值:无
- 描述:需要混音的本地媒体文件名和网络文件路径;支持mp3,wav,mp4,flv,rtmp;
type:
- 类型:int
- 默认值:无
- 描述:音频文件播放类型, 1:音频仅广播; 2:音频仅本地播放; 3:音频即本地播放同时也广播;
cycle:
- 类型:int
- 默认值:无
- 描述:播放次数,-1为循环播放;
callback(ret)
ret:
- 类型:JSON对象
内部字段:
{
status: true //布尔类型;true||false,是否调用成功;
}
示例代码
var maplertc = api.require('mapleRTC');
maplertc.startPlayMedia({path: "http://share.lmaple.com/test.mp3", type:3, cycle:1, mediaView: {}}, function(ret) {
api.toast({msg:JSON.stringify(ret)});
});
停止媒体播放(stopPlayMedia)
stopPlayMedia({params}, callback(ret))
该方法用于停止播放媒体文件;
注意事项:
- 该方法必须在加入频道joinChannel后才可以调用,进入频道前无法调用;
params
无
callback(ret)
ret:
- 类型:JSON对象
内部字段:
{
status: true //布尔类型;true||false,是否调用成功;
}
示例代码
var maplertc = api.require('mapleRTC');
maplertc.stopPlayMedia(function(ret) {
api.toast({msg:JSON.stringify(ret)});
});
暂停媒体播放(pausePlayMedia)
pausePlayMedia({params}, callback(ret))
该方法用于暂停播放媒体文件;
注意事项:
- 该方法必须在加入频道joinChannel后才可以调用,进入频道前无法调用;
params
paused:
- 类型:布尔型
- 默认值:false 关闭
- 描述:true 暂停播放; false 恢复播放;
callback(ret)
ret:
- 类型:JSON对象
内部字段:
{
status: true //布尔类型;true||false,是否调用成功;
}
示例代码
var maplertc = api.require('mapleRTC');
maplertc.pausePlayMedia({paused : true}, function(ret) {
api.toast({msg:JSON.stringify(ret)});
});
静音媒体播放(mutePlayMedia)
mutePlayMedia({params}, callback(ret))
该方法用于静音播放媒体文件;
注意事项:
- 该方法必须在加入频道joinChannel后才可以调用,进入频道前无法调用;
params
muted:
- 类型:布尔型
- 默认值:false 关闭
- 描述:true 静音; false 恢复播放;
callback(ret)
ret:
- 类型:JSON对象
内部字段:
{
status: true //布尔类型;true||false,是否调用成功;
}
示例代码
var maplertc = api.require('mapleRTC');
maplertc.mutePlayMedia({muted : true}, function(ret) {
api.toast({msg:JSON.stringify(ret)});
});
调整媒体播放音量(adjustPlayMediaVolume)
adjustPlayMediaVolume({params}, callback(ret))
该方法用于调整媒体播放音量;
注意事项:
- 该方法必须在加入频道joinChannel后才可以调用,进入频道前无法调用;
params
volume:
- 类型:int
- 默认值:100
- 描述:音量值,最大值为100;
callback(ret)
ret:
- 类型:JSON对象
内部字段:
{
status: true //布尔类型;true||false,是否调用成功;
}
示例代码
var maplertc = api.require('mapleRTC');
maplertc.adjustPlayMediaVolume({volume : 50}, function(ret) {
api.toast({msg:JSON.stringify(ret)});
});
设置媒体播放位置(setPlayMediaPosition)
setPlayMediaPosition({params}, callback(ret))
该方法用于设置媒体播放位置;
注意事项:
- 该方法必须在加入频道joinChannel后才可以调用,进入频道前无法调用;
params
position:
- 类型:int
- 默认值:无
- 描述:文件位置值,单位毫秒;
callback(ret)
ret:
- 类型:JSON对象
内部字段:
{
status: true //布尔类型;true||false,是否调用成功;
}
示例代码
var maplertc = api.require('mapleRTC');
maplertc.setPlayMediaPosition({position : 10000}, function(ret) {
api.toast({msg:JSON.stringify(ret)});
});
获取媒体播放总时长(getPlayMediaTotalDuration)
getPlayMediaTotalDuration({params}, callback(ret))
该方法用于获取媒体播放总时长;
注意事项:
- 该方法必须在加入频道joinChannel后才可以调用,进入频道前无法调用;
params
无
callback(ret)
duration:
- 类型:JSON对象
- 描述:媒体文件总时长,单位毫秒
内部字段:
{
duration: 159000 //媒体文件总时长;
}
示例代码
var maplertc = api.require('mapleRTC');
maplertc.getPlayMediaTotalDuration(function(ret) {
api.toast({msg:JSON.stringify(ret)});
});
获取媒体播放实时位置(getPlayMediaCurrentPosition)
getPlayMediaCurrentPosition({params}, callback(ret))
该方法用于获取媒体播放实时位置;
注意事项:
- 该方法必须在加入频道joinChannel后才可以调用,进入频道前无法调用;
params
无
callback(ret)
position:
- 类型:JSON对象
- 描述:媒体文件实时位置,单位毫秒
内部字段:
{
duration: 10000 //媒体文件实时位置;
}
示例代码
var maplertc = api.require('mapleRTC');
maplertc.getPlayMediaCurrentPosition(function(ret) {
api.toast({msg:JSON.stringify(ret)});
});
监听事件接口类
添加监听事件(addEventListener)
addEventListener({params}, callback(ret))
该方法用于添加mapleRTC模块事件的监听
params
name:
- 类型:字符串
- 默认值:无
- 描述:sdk事件名称(详见事件)
callback(ret)
ret:
- 类型:JSON对象
- 描述:事件发生时回调的参数
示例代码
//监听用户加入频道成功事件
var maplertc = api.require('mapleRTC');
maplertc.addEventListener({
name:'joinChannelSuccessListener'
},function(ret){
//operation
});
移除事件监听(removeEventListener)
removeEventListener({params})
该方法用于移除事件监听;
params
name:
- 类型:字符串
- 默认值:无
- 描述:sdk事件名称(详见事件)
示例代码
var maplertc = api.require('mapleRTC');
maplertc.removeEventListener({
name: 'joinChannelSuccessListener'
});
移除所有的事件监听(removeAllEventListeners)
removeAllEventListeners()
该方法用于移除所有的事件监听;
示例代码
var maplertc = api.require('mapleRTC');
maplertc.removeAllEventListeners();
监听事件
- joinChannelSuccessListener
- joinChannelFailedListener
- connectionLostListener
- leaveChannelListener
- forceKickOutChannelListener
- firstRemoteVideoFrameSizeChangedListener
- audioVolumeIndicationListener
- userJoinedNoticeListener
- userOfflineNoticeListener
- mediaStopListener
- warningListener
- errorListener
加入频道成功监听事件(joinChannelSuccessListener)
callback(ret)
表示客户端登入服务器成功,且创建和分配了频道 ID 和用户 ID。
callback(ret)
ret:
- 类型:JSON对象
内部字段:
{
channelId: 'abc' //字符串类型;加入成功后频道Id;
uid: 'abc' //字符串类型;加入成功后用户Id;
}
示例代码
var maplertc = api.require('mapleRTC');
maplertc.addEventListener({
name:'joinChannelSuccessListener'
},function(ret){
//operation
});
加入频道失败监听事件(joinChannelFailedListener)
callback(ret)
表示客户端登入服务器失败监听事件;
callback(ret)
ret:
- 类型:JSON对象
内部字段:
{
reason: 4001 //int类型;(详见 回调状态码)
}
示例代码
var maplertc = api.require('mapleRTC');
maplertc.addEventListener({
name:'joinChannelFailedListener'
},function(ret){
//operation
});
连接丢失监听事件(connectionLostListener)
callback(ret)
连接丢失监听事件;sdk 和服务器失去了网络连接,并且尝试自动重连一段事件(15s左右)后仍未连上。回调该事件后,sdk将不会再次自动重连,需要用户手动调用leaveChannel,后再次尝试加入频道;
callback(ret)
ret:
- 类型:JSON对象
内部字段: 空
示例代码
var maplertc = api.require('mapleRTC');
maplertc.addEventListener({
name:'connectionLostListener'
},function(ret){
//operation
});
离开频道监听事件(leaveChannelListener)
callback(ret)
用程序调用 leaveChannel() 方法时,SDK提示应用程序离开频道成功或者失败。参数reason表示具体原因状态码。
callback(ret)
ret:
- 类型:JSON对象
内部字段:
{
reason: 200 //int类型;(详见 回调状态码)
}
示例代码
var maplertc = api.require('mapleRTC');
maplertc.addEventListener({
name:'leaveChannelListener'
},function(ret){
//operation
});
强行踢下线监听事件(forceKickOutChannelListener)
callback(ret)
由于某种原因,自己强行被系统踢下线。参数reason表示具体原因状态码。
callback(ret)
ret:
- 类型:JSON对象
内部字段:
{
reason: 200 //int类型;(详见 回调状态码)
}
示例代码
var maplertc = api.require('mapleRTC');
maplertc.addEventListener({
name:'forceKickOutChannelListener'
},function(ret){
//operation
});
远端第一视频帧尺寸变化监听事件(firstRemoteVideoFrameSizeChangedListener)
callback(ret)
调用muteRemoteVideoStream 开启接收远端视频流,底层解码器解码完第一帧数据回调事件。
callback(ret)
ret:
- 类型:JSON对象
内部字段:
{
uid: 'abc', //字符串类型;远端用户Id;
width: 640, //int 类型; 原始视频的宽;
height: 480, //int 类型; 原始视频的高;
}
示例代码
var maplertc = api.require('mapleRTC');
maplertc.addEventListener({
name:'firstRemoteVideoFrameSizeChangedListener'
},function(ret){
//operation
});
本地音量监听事件(audioVolumeIndicationListener)
callback(ret)
该回调允许 SDK 定期向应用程序反馈房间里所有用户的音量信息。该提示默认为关闭状态,如有需要,调用 enableAudioVolumeIndication() 方法触发该提示。
callback(ret)
ret:
- 类型:JSON对象
内部字段:
{
totalVolume: 100, //int 类型; 房间里总音量, 值为0~255;
volumeInfo: "[{uid:"abc",volume:10}, {uid:"abcd",volume:90}]"
}
示例代码
var maplertc = api.require('mapleRTC');
maplertc.addEventListener({
name:'audioVolumeIndicationListener'
},function(ret){
//operation
});
用户加入频道监听事件(userJoinedNoticeListener)
callback(ret)
提示有用户加入了频道。如果该客户端加入频道时已经有人在频道中,SDK也会向应用程序上报这些已在频道中的全部用户。
callback(ret)
ret:
- 类型:JSON对象
内部字段:
{
uids: ['abc','dfg'], //字符串数组类型; 全部进入频道的用户id集;
}
示例代码
var maplertc = api.require('mapleRTC');
maplertc.addEventListener({
name:'userJoinedNoticeListener'
},function(ret){
//operation
});
用户离开当前频道监听事件(userOfflineNoticeListener)
callback(ret)
提示有用户离开了频道(或掉线)。
callback(ret)
ret:
- 类型:JSON对象
内部字段:
{
uids: ['abc','dfg'], //字符串数组类型; 离开频道的用户id;
}
示例代码
var maplertc = api.require('mapleRTC');
maplertc.addEventListener({
name:'userOfflineNoticeListener'
},function(ret){
//operation
});
媒体播放结束监听事件(mediaStopListener)
callback(ret)
提示媒体播放结束。
callback(ret)
ret:
- 类型:JSON对象
内部字段:
{
path: "http://share.lmaple.com/test.mp3", //播放路径;
}
示例代码
var maplertc = api.require('mapleRTC');
maplertc.addEventListener({
name:'mediaStopListener'
},function(ret){
//operation
});
警告监听事件(warningListener)
callback(ret)
该回调事件表示 SDK 运行时出现了(网络或媒体相关的)警告。 通常情况下,SDK上报的警告信息应用程序可以忽略,SDK 会自动恢复。
callback(ret)
ret:
- 类型:JSON对象
内部字段:
{
reason: 200 //int类型;(详见 回调状态码)
}
示例代码
var maplertc = api.require('mapleRTC');
maplertc.addEventListener({
name:'warningListener'
},function(ret){
//operation
});
错误监听事件(errorListener)
callback(ret)
表示 SDK 运行时出现了(网络或媒体相关的)错误。 通常情况下,SDK 上报的错误意味着 SDK 无法自动恢复,需要 APP 干预或提示用户。
callback(ret)
ret:
- 类型:JSON对象
内部字段:
{
reason: 200 //int类型;(详见 回调状态码)
}
示例代码
var maplertc = api.require('mapleRTC');
maplertc.addEventListener({
name:'errorListener'
},function(ret){
//operation
});
回调状态码
状态码 | 值 | 描述 |
---|---|---|
KC_StatusOk | 200 | 状态正常 |
KC_JoinChannelFailed | 4000 | 加入频道失败 |
KC_LoginSignalServerFailed | 4001 | 登录信令服务器失败 |
KC_ConnectMediaServerFailed | 4003 | 连接媒体服务器失败 |
KC_AppIdInvalid | 4005 | 无效的AppId |
KC_HttpRequestFailed | 4006 | 加入频道失败 |
KC_LeaveChannelFailed | 4100 | 离开频道失败 |
KC_KickedOutReLogin | 4200 | 相同userId用户登录,服务器强行踢出当前用户 |
KC_KickedOutTimeOut | 4201 | 客户端长时间未通知服务器状态,服务器强行踢出当前用户 |