腾讯云 视频通话插件 Andord 和 IOS 支持多人通话 直播
腾讯云视频通话插件
1. 首先要到腾讯云,申请视频通话 sdkAppId ,
https://cloud.tencent.com/product/trtc
2. 每个用户名都要通过加密计算返回用户 usersig ,计算的方法
https://cloud.tencent.com/document/product/647/17275
实例化插件
const call=uni.requireNativePlugin('TencentCall');
3. 调用的方法 openCall
call.openCall({"userid":"Android_trtc_01","roomid":110235,"usersig":"eJxlj1FPgzAYRd-5FaSvGv1aKIJvmyiDjYgDNfjSENrNhgmslDld9t9VXCKJ9-Wc3Jt7MEzTRNkivSjKsulrzfRHK5B5bSJA53*wbSVnhWaW4v*g2LdSCVastFADxJRSAjB2JBe1lit5MiY1V813o1a6ZIBHYscrNqz9NtkABDzXdsaKXA8wvs1vwgc-X3uzKpwpdZ-O91KUvv8cZBkOP7fV2Qsp*w12l7Jru3j7Hr5OFn1E75JdMM29x7oLrWx6mRMMxZN2wPXIMo1FFG2SpAjmo0kt38TpmgPOlWtbdER3QnWyqQeBAKaYWPATZByNL2lJX-o_"},ret=>{
});
4. 参数说明
参数名 | 说明 |
---|---|
userid | 用户名,字符串,可以随便填写, 必填 |
roomid | 房间ID, 整数类型,可以随便填 必填 |
usersig | 用户名sig , 是后台根据用户名计算生成的一串字符串,用于加密使用。 |
5. 回调 ret
{"code":1,"您主动退出了当前视频通话"}
{"code":2,"sdkAppId 不能为空,如没有请到腾讯云申请"}
{"code":3,"参数不能为空"}
{"code":4,"成功进入房间"}
{"code":5,"对方已连接上当前视频通话"}
{"code":6,"对方已挂断当前视频通话"}
android 用户测试数据
{
"sdkappid": 1400209846,
"users": [{
"userId": "Android_trtc_01",
"userToken": "eJxlj1FPgzAYRd-5FaSvGv1aKIJvmyiDjYgDNfjSENrNhgmslDld9t9VXCKJ9-Wc3Jt7MEzTRNkivSjKsulrzfRHK5B5bSJA53*wbSVnhWaW4v*g2LdSCVastFADxJRSAjB2JBe1lit5MiY1V813o1a6ZIBHYscrNqz9NtkABDzXdsaKXA8wvs1vwgc-X3uzKpwpdZ-O91KUvv8cZBkOP7fV2Qsp*w12l7Jru3j7Hr5OFn1E75JdMM29x7oLrWx6mRMMxZN2wPXIMo1FFG2SpAjmo0kt38TpmgPOlWtbdER3QnWyqQeBAKaYWPATZByNL2lJX-o_"
}, {
"userId": "Android_trtc_02",
"userToken": "eJxlj0FPg0AYRO-8CsIVIx8LC9TEA6HQSqCo0EsvG2S3dVUWXJamjfG-q9hEEuf6XmYyH5qu60aVldd103SjUESde2boN7oBxtUf7HtOSa2II*k-yE49l4zUe8XkBG2MMQKYO5wyofieX4xQUNl9NyqpGgJoJg70lUxrv00uAIJF4HpzhR8mmMfb6G6Nm-VWDvGwZI9pjJ6b0n8IK3vcLRKwCnzI74NolVvtEK9CHocvbWTR*j1JTLNIZbnJRLH0w835LUM7y3w6tXRkXsrt6tjdziYVb9nlmgeeH7gOntEjkwPvxCQgsLGNHPiJoX1qX9AAXyY_"
}, {
"userId": "Android_trtc_03",
"userToken": "eJxlj81Og0AYRfc8BWFbox8MQ6lJF-yVGNBqwbS4mRBmaj4tP07H1mp891ZsIol3e07uzf3SdF038jS7LKuqfW8UU4dOGPq1boBx8Qe7DjkrFSOS-4Pio0MpWLlWQvbQpJRaAEMHuWgUrvFseA2X7alRSVUxIANxy19Zv-bbZANYMHFtZ6jgcw9vo4fgJl76mGVyYc*w3DkE74l7lRARpTL2Q7*ID93yLk8e*Vv46aE3jkQzA7Ipwsl85NcvAc2fgs2qDXjKF-OktUeyzApar7z9dDqYVFiL8zUHnLFrEzqgOyG32Da9YIFJTYvATwztWzsC*eFfaQ__"
}, {
"userId": "Android_trtc_04",
"userToken": "eJxlj01Pg0AURff8CsLa6BtggDbpAi39MCBt0QirCTIDeWkKZJjWFuN-V7GJJN7tObk390PTdd14DpPbvCiaY62YurTC0Ke6AcbNH2xb5CxXzJL8HxTnFqVgeamEHCChlJoAYwe5qBWWeDX8msvmu1FJVTCwR2LH92xY*22yAUyYeLYzVrAaYBRsH9bBZJXvw2rpwlOxTRZYe3GhnLDnfeRl5Jx0c4xPQezuHl989NcQXejboQJy19vLTfaevqa*22QLS6ygKo*ku494O99AWs1mo0mFB3G95oDjerZFR-QkZIdNPQgmEEpMC35iaJ-aFyxUX7w_"
}]
}
IOS 用户测试数据
{
"sdkappid": 1400209846,
"users": [{
"userId": "iOS_trtc_01",
"userToken": "eJxlj11PgzAYhe-5FYRbjb4UytC7KW58CRKmqDcNlG5rdNCVqiPG-27EJTbx3D5Pzsn5NEzTtFZpeVZT2r91iqhRMMu8NC2wTv*gELwltSKObP9BdhBcMlKvFZMTtDHGCEB3eMs6xdf8aPC8JEoqSsDWpKF9IdPSb4sLgODCdz1d4ZsJ3t48XUdF4IcFiqJxNd-vspwGomnkMkgP1aMnZBZnd0OYJl7fuHH4EW3nMSz7roYKzZ7r0t-gcfFaXT2M2zAPFr2bnO-vc3ZS*EzRRJtUfMeOtzzwZr7rYI2*MznwvpsEBDa2kQM-sYwv4xtJKl5p"
}, {
"userId": "iOS_trtc_02",
"userToken": "eJxlj01Pg0AURff9FYStRh-DpyYuUDAWaAulLFxNcBjokxTI8DTaxv9uxCaSeLfn5N7c00LTNH2X5FelEP1bR5w*B6lrt5oO*uUfHAaseEncVNU-KD8GVJKXNUk1QcO2bQYwd7CSHWGNZwM3OSdFggObSWPV8mnpt8UCYHDjWc5cwWaCq7B4WD4aLDiaeN3KNi5SCtduWdc7t7jfRpEyVJAEbT9WzXZMOx9DnwQE4zHz4kiuL1ZJuvcJsjTq5XO6EfkhDsVr8-K0zPZK3M0mCQ-yfMsBx-Us057Rd6lG7LtJYGDYBjPhJ-ria-ENgJ9fHQ__"
}, {
"userId": "iOS_trtc_03",
"userToken": "eJxlj11PgzAARd-5FQ2vGFMoZbBkD0y32QXEjSVGXxo*WlPZaGVFYYv-3ciWSOJ9PSf35p4NAIC5i9LbrChkW2uqe8VMMAUmNG-*oFKipJmmqCn-QdYp0TCacc2aAdoYYwfCsSNKVmvBxdUQSUp1owsK0Ug6lhUdli4tLoQODHzXGyvibYDxYnNHln0VEpnHUhYtz14PX6dkwe6f80TyzIpUGu9rqw930eSlCsV8TtZlV*23qH0gPFl11qrPOd7ayRPpl64f5IqcHj*C9TvfzGajSS0O7HrLg97EdxEe0U-WHIWsB8GBNrYdBH9jGt-GDxTCX88_"
}, {
"userId": "iOS_trtc_04",
"userToken": "eJxlj11LhEAYhe-9FeKtETM640fQTe7m2q6JjIt0NYiO9mb5MTsrVvTfI1tI6Nw*D*dwPjVd143swK6LsuzPneLqfRCGfqMbyLj6g8MAFS8Ut2X1D4p5ACl4USshF4gppRZCawcq0Smo4WJAwriSquSIrKRT1fJl6beFIGQh3yPOWoFmgfH2GERp4G9yl27HY23i7MkO-exlbB-rOBlxGzVzcd4JNGdT-vqcpVHz0N3toj5gZghyz8Tmw8xJ7BGLsnCidg8u2Y-3LDEPRXq7mlTwJi63HOS4HrHpik5CnqDvFsFCmGLLRj8xtC-tG-ziXaM_"
}]
}
以上测试数据,因为通讯流量已用完,但可以正常打开视频页面
6.只要进入roomid 相同的房间,即可进入视频对话。
腾讯云视频通话插件
1. 首先要到腾讯云,申请视频通话sdkAppId , 腾讯云视频通讯收费情况请注册时查看相关收费标准。
腾讯云收费介绍:https://cloud.tencent.com/product/trtc
腾讯云实时音频通话控制后台:https://console.cloud.tencent.com/trtc
2. 每个有用户名都可以通过加密计算返回用户 usersig ,计算的方法
https://cloud.tencent.com/document/product/647/17275
提示,如果发现有华为andorid 10 打包打开有白屏的情况,看下打包的时候,是不是把x86指令打包进去了,需要移除x86打包才能正常。
3. 实例化插件
const call=uni.requireNativePlugin('Html5App-TencentCall');
IOS 需要配置以下权限
"ios" : {
"privacyDescription" : {
"NSCameraUsageDescription" : "访问摄像头才可以正常使用,允许吗?",
"NSMicrophoneUsageDescription" : "访问麦克风才可以正常使用,允许吗?"
},
"UIBackgroundModes" : [ "audio" ] //允许音频在后台播放,才可以让应用进入后台时继续通话
}
4. 调用的方法 openCall , 默认的多人视频(多人视频,最多显示6个人,在屏幕上)
call.openCall({
"userid": "Android_trtc_02",
"roomid": 110235,
"usersig": "eJxlj0FPg0AYRO-8CsIVIx8LC9TEA6HQSqCo0EsvG2S3dVUWXJamjfG-q9hEEuf6XmYyH5qu60aVldd103SjUESde2boN7oBxtUf7HtOSa2II*k-yE49l4zUe8XkBG2MMQKYO5wyofieX4xQUNl9NyqpGgJoJg70lUxrv00uAIJF4HpzhR8mmMfb6G6Nm-VWDvGwZI9pjJ6b0n8IK3vcLRKwCnzI74NolVvtEK9CHocvbWTR*j1JTLNIZbnJRLH0w835LUM7y3w6tXRkXsrt6tjdziYVb9nlmgeeH7gOntEjkwPvxCQgsLGNHPiJoX1qX9AAXyY_",
isShowBackIcon:1,
setBeautyStyle:{"beautyStyle":1,beautyLevel:6,whitenessLevel:4,ruddinessLevel:3},
videoFps:15,
videoBitrate:600,
buttons:{"float":0,"beauty":0,"videoEnable":1,"mic":1,"camera":0}
}, ret => {
console.log(JSON.stringify(ret));
});
多人通话的回调数据
{"msg":"成功进入房间","code":4}
{"msg":"用户主动退出了当前视频通话","code":1}
- 有新的用户加入了当前视频房间
{"msg":"有新的用户加入了当前视频房间",
"info":{
"userList":["iOS_trtc_03","iOS_trtc_02"], //目前在房间通话的所有用户
"count":2, //目前通话人数,不包括您自己
"userid":"iOS_trtc_03" //当前刚进入视频房间的用户id
},
"code":5
}
- 有用户离开了当前视频房间
{"msg":"有用户离开了当前视频房间",
"info":{
"userList":[], //目前在房间通话的所有用户
"count":0, //目前通话人数,不包括您自己
"userid":"iOS_trtc_03" //当前刚退视频房间的用户id
},
"code":6
}
安卓悬浮窗权限,以上有效,需要手动到应用权限中设置该应用开启悬浮窗权限,应用返回后台才会显示出来。
一对一, 视频语音通话 模式.
5. 调用的方法 openCall , 一对一通话界面
call.openCall(
{
"type":1, //1 代表对一对一界面,0 代表默认界面
"callType":"video", // 留空,使用默认模式,video 是视频,voice 是语音通话
"username":"英雄", //对方的用户昵称
"useravatar":"http://www.html5-app.com/uploads/avatar/042cae50df1d177b691417a316e4a886.png", //对方的头像
"myname":"都王", //我的昵称
"myavatar":"http://www.html5-app.com/uploads/avatar/f5950e65261f2aa3e846e2262b0c7690.png", //我的头像
"wait":"正在等待对方接受邀请...",
"prompt":"通话中...",
"userid":"iOS_trtc_04", // 我的腾讯云通话用户id
"roomid":110235, //房间号, 数字,随着填写
"usersig":"eJxlj01Pg0AURff8CjJbjX0M4FB3lICBQKvSmOJmMmUGO5YCDtMvjf-diE0k8W3Pyb33fRqmaaJlmt*wsmz3jab63Alk3pkI0PUf7DrJKdPUVvwfFKdOKkFZpYUaoOW6LgYYO5KLRstKXgy5yKlWuqTgjKSeb*nQ9JviAOBbQjwyVuTrALOwCOLHYFNsj-NyfYAUggD41H3zyD6TeR8*h3M-SuLJuv54f6gmy2O88RPLE-hq4dRTRWLMdz1rzrXDnlahn73MolUxY-dFlLSpx0eVWu7E5S0Cjk08azzoIFQv22YQMFiuhW34OWR8Gd8XZ133" //用户名加密串
},ret=>
{
_this.title+=JSON.stringify(ret);
});
呼起后台应用, 该方法在android 处于后台运行时有效,当应用处于后台运行时,调用该方法可以打开APP回到前台。
-
使用该方法时,需要允许,应用在台后打开, 第一次使用时,会在通知栏有提示.
-
可以用于,推送消息时,应用在后台运行时,可以被动的方式呼起应用,然后打开接听页面.
call.openApp();
6. 关掉通话界面,
- 调用此方法可以关闭自已的通话界面,例如: 当对方拒绝接听时,可以推送一条指令给自己,再调用此方法,就可以关掉自己的通话界面。
call.close();
- 安卓端,检查是否开启了悬浮窗权限
let is=call.isFloatPermission();
- 安卓端,跳转到悬浮窗权限设置
call.openFloatSetting();
7. 参数说明
参数名 | 说明 | 是否必填 | 默认值 | 类型 |
---|---|---|---|---|
userid | 用户名,字符串,可以随便填写 | 是 | 无 | 字符串 |
roomid | 房间ID, 整数类型,可以随便填 | roomid 和 strRoomId,只能选其中一个作为房间号 | 无 | 整数 1至10位数字 |
strRoomId | 字符串方房号,64位字符串 | roomid 和 strRoomId,只能选其中一个作为房间号 | 无 | 64位字符串 |
usersig | 用户名sig , 是后台根据用户名计算生成的一串字符串,用于加密使用。 | 是 | 无 | 字符串 |
type | 2 代表一对一悬浮窗接听的新模式,0 代表默认界面 | 是 | 0 | 数字 |
callType | 留空,使用默认模式,video 是视频,voice 是语音通话 | 否 | 无 | 字符串 |
username | 对方的用户昵称 | 是 | 无 | 字符串 |
useravatar | 对方的用户头像 | 是 | 无 | 字符串 |
myname | 我的昵称 | 是 | 无 | 字符串 |
myavatar | 我的用户头像 | 是 | 无 | 字符串 |
wait | 等待中的提示语 | 否 | 正在等待对方接受邀请... | 字符串 |
prompt | 通话中的提示语 | 否 | 通话中 | 字符串 |
isAudioType | 只在一对一语音通话有效,设置默认值,初始值: 听简=false 或 扬声器=true, | 否 | false | boolean |
isShowBackIcon | 多人视频通话Android 设置是否显示左上角返回箭头,0=>隐藏,1 => 显示箭头,同时手机物理返回键和箭头都可以退出页面 2=>显示箭头,禁止手机物理键返回 | 否 | 0 | int |
setBeautyStyle | 视频通话自定义美颜效果 | 否 | 参考下面参数说明 | JSON |
videoFps | 帧率 | 否 | 15 | int |
videoBitrate | 码率 | 否 | 850 | int |
videoResolution | 分辨率 | 否 | 960x540 | string |
buttons | 多人视频界面底部5个按钮的显示或隐藏. | 否 | 参考下面参数说明 | JSON |
isshowFloat | 是否显示缩放图标(安卓端有效),0=>显示,1=隐藏 | 是 | 0 | int |
orientation | 是否横屏(安卓端有效),0=>竖屏,1=>横屏 | 否 | 0 | int |
setVideoRotation | 设置本地预览视频角度,0,90,180,270 | 否 | 0 | int |
setVideoEncoderRotation | 设置远程对方看到你的视频角度,0,90,180,270 | 否 | 0 | int |
setVideoResolutionMode | 设置远程视频对方看到你的画面是竖屏还是横屏显示,0=>竖屏,1=>横屏 | 否 | 0 | int |
isEnableVideo | 一对一视频有效,设置在切换成语音模式后,禁止再切回视频,只能语音通话,默认是false,可以视频与语音切换,true 禁止切换 | 否 | false | int |
minImageMode | 左上角小头像是否圆形或圆角,0=>圆角,1=>圆形头像 | 否 | 0 | int |
maxImageMode | 语音时中间的大头像是否圆形或圆角,0=>圆角,1=>圆形头像 | 否 | 0 | int |
isCall | 打开页面类型,呼叫或接听界面,false=>呼叫界面,true=>接听界面 | 否 | false | boolean |
AudioPath | 接听,自定义铃声本地绝对路径, | 否 | 空 | string |
enableVibrator | 接听,是否禁用手机震动,false=>开启,true=>禁止 | 否 | false | boolean |
enableAudio | 接听,是否禁用手机播放铃声,false=>开启,true=>禁止 | 否 | false | boolean |
enableGSensor | 视频通话,是否开启重力感应,关开启,你的手机旋转,对方看到你的画面,也自动调整角度显示,false=>关闭重力感应,true=>开启 | 否 | false | boolean |
isCloudMixture | 视频通话,用于设置是否开启混合流,混合流在开启云端录制时有效,会把多个视频录制成一个视频,关闭混合流云端录制时,每一个用户的视频都是独立的。 | 否 | false | boolean |
endTime | 一对一通话新版中有效,设置最大通话时间,单位:秒,大于0有效,设置后会显示以倒计时的方式显示时间 | 否 | 0 | int |
主定义美颜效果参数说明 setBeautyStyle
setBeautyStyle:{"beautyStyle":1,beautyLevel:6,whitenessLevel:4,ruddinessLevel:3}
参数名 | 说明 |
---|---|
beautyStyle | 美颜风格,0=>光滑或者 1=>自然,光滑风格磨皮更加明显,适合娱乐场景 |
beautyLevel | 美颜级别,取值范围0 - 9; 0表示关闭,1 - 9值越大,效果越明显。 |
whitenessLevel | 美白级别,取值范围0 - 9;0表示关闭,1 - 9值越大,效果越明显。 |
ruddinessLevel | 红润级别,取值范围0 - 9;0表示关闭,1 - 9值越大,效果越明显。 |
多人视频界面底部5个按钮的显示或隐藏.buttons
buttons:{"float":0,"beauty":0,"videoEnable":0,"mic":0,"camera":0}
参数名 | 说明 |
---|---|
float | 叠格按钮,0=>显示,1=>隐藏 |
beauty | 美颜按钮,0=>显示,1=>隐藏 |
videoEnable | 屏蔽视频按钮,0=>显示,1=>隐藏 |
mic | 静音按钮,0=>显示,1=>隐藏 |
camera | 前后摄像头切换按钮,0=>显示,1=>隐藏 |
视频通话清晰度设置
-
videoFps
15fps或20fps,5fps以下,卡顿感明显。10fps以下,会有轻微卡顿感。20fps以上,则过于浪费(电影的帧率为24fps)。
-
videoBitrate
用来获得更好的清晰度观感, 默认是600kbps , kbps(千比特每秒),又称千比特率,指的是数字信号的传输速率, 越大清晰度越高,可能会出现网络跟不上卡顿的问题,不必设置太大.
一对一视频通话,按钮下方提示文字设置
参数名 | 按钮说明 | 文字设置 |
---|---|---|
cancelButtonText | 取消按钮 | "取消" |
hangUpText | 挂断按钮 | "挂断" |
leftButtonText | 左边按钮 | "切换到语音#切换到视频" |
rightButtonText | 右边按钮 | "切换摄像头#免提" |
- 表格中的# 符号是 "|"
{
cancelButtonText:"取消",
hangUpText:"挂断",
leftButtonText:"切换到语音|切换到视频",
rightButtonText:"切换摄像头|免提"
}
// 英文语言提示,例如:
{
cancelButtonText:"Cancel",
hangUpText:"Hang Up",
leftButtonText:"Switch to Voice|Switch to Video",
rightButtonText:"Switch Camera|Speaker"
}
一对一语音通话,按钮下方提示文字设置
参数名 | 按钮说明 | 文字设置 |
---|---|---|
cancelButtonText | 取消按钮 | "取消" |
hangUpText | 挂断按钮 | "挂断" |
leftButtonText | 左边按钮 | "静音" |
rightButtonText | 右边按钮 | "免提" |
{
cancelButtonText:"取消",
hangUpText:"挂断",
leftButtonText:"静音",
rightButtonText:"免提"
}
// 英文语言提示,例如:
{
cancelButtonText:"Cancel",
hangUpText:"Hang Up",
leftButtonText:"Mute",
rightButtonText:"Speaker"
}
8. 回调 ret
{"code":1,"您主动退出了当前视频通话"}
{"code":2,"sdkAppId 不能为空,如没有请到腾讯云申请"}
{"code":3,"参数不能为空"}
{"code":4,"成功进入房间"}
{"code":5,"对方已连接上当前视频通话",time:"00:00"}
{"code":6,"对方已挂断当前视频通话",time:"00:00"}
腾讯云多人聊天室说明
1. 创建房间或加入房间
plug.joinRoom({
"userid":"Android_trtc_02",
"roomid":110235,
"usersig":"eJxlj01Pg0AURff8CjJbjTw*pqBJF4Bt2oYO0VZiupkQZsDRFugwSIvxv6vYRBLf9pzce9*Hpus62kabmzTLqrZUVJ1rjvQ7HQG6-oN1LRhNFbUl*wf5qRaS0zRXXA7QxBhbAGNHMF4qkYuL4ZdMVt*JSqqMgjUSG-ZGh7bfJAfAmriu544VUQxwPXsIl0HotPmRRbPbpyohoQ1xN9k6ULwuCjWvcdT3L8TuyGFlJL7wN9FpTfAiXzHjuXls5oHc3**DHemS*OrYBgXjuziu*qXhFdPpqFKJA7*85oJju545HvTOZSOqchAsMLFp2fBzSPvUvgB1pGCH"
},ret=>{
}
)
参数说明
- userid => 用户ID
- roomid => 房间ID, 数字,随便定义
- usersig => 用户加密串
用户创建房间 和 其他用户 进入房间都是同样方法,只要房间ID 相同即可, 房主以第一个进入房间的为主。
回调参数
{"code":0,"msg":"进入房间成功"} ,{"code":1,"msg":"进入房间失败"}
当有新用户加入时
{"code":101,
"msg":"有用户加入房间",
"newsUserid":"iOS_trtc_04", //当前加入的用户
"list":["Android_trtc_02","iOS_trtc_04"] //目前在线用户数组
}
当有用户离开时
{"code":102,
"msg":"有用户离开房间",
"outUserid":"iOS_trtc_04", //当前离开的用户
"list":["Android_trtc_02"] //目前在线用户数组
}
主动离开房间
{"code":1,"msg":"离开房间成功"}
被踢出房间
{"code":3,"msg":"被踢出房间"}
2. 退出房间
plug.exitRoom();
用户关闭页面时,必须调用退出房间,不如不会真正的离开房间,还占用资源。
3. 设置切换音频通道
//0=>代表扬声器,1=> 听筒
plug.setAudioRoute({route:0},ret=>
{
});
4. 设置聊天禁言
all=>代表禁止所有人发言,其他代表禁止单个用户ID , mute : 0=>代表禁言,1=> 开启发言
plug.muteRemoteAudio({"userid":"all",mute:0},ret=>{
_this.tip=JSON.stringify(ret);
});
5. 设置踢出用户
踢出某个用户, userid:all 时代表踢出所有人 ,其他代表单个用户ID
const _this=this;
plug.removeUser({"userid":"iOS_trtc_04"},ret=>{
_this.tip=JSON.stringify(ret);
});
6. 设置本地音频是否开启,
mute : 0=>代表静音,1=> 开启声音 ,
const _this=this;
plug.muteLocalAudio({mute:1},ret=>{
_this.tip=JSON.stringify(ret);
});
8. 用户名,用户头像,房主,允许房间人数 部分,一些建议。
可以新建一个表,记录创建房间的表, 例如:
-
userid => 房主用户ID
-
roomid => 房间号,
-
num => 允许聊天的人数,
-
live => 在线人数记录
-
text => 房间介绍
-
time => 创建房间时间 等等
-
一些需要的信息, 在用户创建房间时,先把房间数据提交到服务器,再返回打开聊天室页面。
-
用户头像这些,可以根据在线的用户id ,到用户表中拉取图片.
-
人数限制方面, 可以在用户加入前,先访问服务器获取房间信息的在线人数,是否达标,如果没有则让他进入房间。
目前提供的自定义方法
-
自定义模式 只能在 nvue 页面中使用。liveroom 标签作为主屏,用来显示视频的view.
-
radius 属性设置,是否圆角显示
<liveroom radius="false" ref="livePusher" ></liveroom>
-
liveroom-sub 标签用来作副屏,显示小视频的view,例如视频通话中,另一方的小视频窗口.
-
radius 属性设置,是否圆角显示
<liveroom-sub radius="false" ref="liveroomsub" ></liveroom-sub>
-
通过 ref 方式来获取标签对象。
this.view=this.$refs.livePusher;
方法介绍
方法名称 | 说明 |
---|---|
enterRoom | 进入房间 |
exitRoom | 退出房间 |
switchRole | 切换角色 |
switchRoom | 切换房间 |
connectOtherRoom | 请求跨房通话 |
disconnectOtherRoom | 退出跨房通话 |
setDefaultStreamRecvMode | 设置订阅模式(需要在进入房前设置才能生效) |
startPublishing | 开始向腾讯云直播 CDN 上发布音视频流 |
stopPublishing | 停止向腾讯云直播 CDN 上发布音视频流 |
startPublishCDNStream | 开始向非腾讯云 CDN 上发布音视频流 |
stopPublishCDNStream | 停止向非腾讯云 CDN 上发布音视频流 |
setMixTranscodingConfig | 设置云端混流的排版布局和转码参数 |
startPreview | 开启本地摄像头的预览画面(移动端) |
updatePreview | 更新本地摄像头的预览画面 |
stopPreview | 停止摄像头预览 |
switchCamera | 切换前后摄像头 |
snapshot | 获取当前推流视频的快照 |
deleteSnapshot | 删除快照产生的图片资源 |
setBeauty | 美颜级别 |
setWhiteness | 美白级别 |
setRuddy | 红润级别 |
setVideoMuteImage | 设置本地画面被暂停期间的替代图片 |
setVideoEncoderMirror | 设置编码器输出的画面镜像模式 |
setVideoEncoderRotation | 设置视频编码器输出的画面方向 |
setRemoteRenderParams | 设置远端画面的渲染模式 |
setLocalRenderParams | 设置本地画面的渲染参数 |
setNetworkQosParam | 设置网络质量控制的相关参数 |
setVideoEncoderParam | 设置视频编码器的编码参数 |
setWatermark | 添加水印 |
playMusic | 播放背景音乐 |
pauseMusic | 暂停播放 |
resumeMusic | 恢复播放 |
stopMusic | 停止播放 |
seekMusic | 跳转播放 |
getMusicDurationInMS | 获取当前路径音频时长 |
setAllMusicVolume | 设置所有背景音乐的本地音量和远端音量的大小 取值范围为0 - 100 |
setVoiceEarMonitorVolume | 通过该接口您可以设置耳返特效中声音的音量大小。 |
setVoicePitch | 该接口可以设置语音音调,用于实现变调不变速的目的 |
setVoiceReverbType | 设置人声的混响效果 |
setMusicPlayoutVolume | 设置某一首背景音乐的本地音量的大小 |
setMusicPublishVolume | 设置某一首背景音乐的远端音量的大小 |
setMusicPitch | 调整背景音乐的音调高低 |
setMusicSpeedRate | 调整背景音乐的变速效果 |
sendCustomCmdMsg | 使用 UDP 通道发送自定义消息给房间内所有用户 |
sendSEIMsg | 使用 SEI 通道发送自定义消息给房间内所有用户 |
startSpeedTest | 开始进行网络测速(进入房间前使用) |
stopSpeedTest | 停止网络测速 |
startRemoteView | 订阅远端用户的视频流,并绑定视频渲染控件 |
updateRemoteView | 更新远端用户的视频渲染控件 |
stopRemoteView | 停止订阅远端用户的视频流,并释放渲染控件 |
muteRemoteVideoStream | 暂停/恢复订阅远端用户的视频流 |
muteAllRemoteVideoStreams | 暂停/恢复订阅所有远端用户的视频流 |
setGSensorMode | 设置重力感应的适配模式 |
stopAllRemoteView | 停止订阅所有远端用户的视频流,并释放全部渲染资源 |
startLocalAudio | 开启本地音频的采集和发布 |
stopLocalAudio | 停止本地音频的采集和发布 |
muteLocalAudio | 暂停/恢复发布本地的音频流 |
muteRemoteAudio | 暂停/恢复播放远端的音频流 |
muteAllRemoteAudio | 暂停/恢复播放所有远端用户的音频流 |
setAudioRoute | 设置音频路由 |
setRemoteAudioVolume | 设定某一个远端用户的声音播放音量 |
setAudioCaptureVolume | 设定本地音频的采集音量 |
getAudioCaptureVolume | 获取本地音频的采集音量 |
setAudioPlayoutVolume | 设定远端音频的播放音量 |
enableAudioVolumeEvaluation | 启用音量大小提示 |
startAudioRecording | 开始录音 |
stopAudioRecording | 停止录音 |
startLocalRecording | 开启本地媒体录制 |
stopLocalRecording | 停止本地媒体录制 |
checkAudioCapabilitySupport | 音频能力类型 |
isFrontCamera | 判断当前是否为前置摄像头(仅适用于移动端) |
getCameraZoomMaxRatio | 获取摄像头的最大缩放倍数(仅适用于移动端) |
setCameraZoomRatio | 设置摄像头的缩放倍数(仅适用于移动端) |
isAutoFocusEnabled | 查询是否支持自动识别人脸位置(仅适用于移动端) |
enableCameraAutoFocus | 开启自动对焦功能(仅适用于移动端) |
setCameraFocusPosition | 设置摄像头的对焦位置(仅适用于移动端) |
enableCameraTorch | 开启/关闭闪光灯,也就是手电筒模式(仅适用于移动端) |
setSystemVolumeType | 设置音频路由(仅适用于移动端) |
回调事件
-示例
<liveroom ref="livePusher"
@onError="onError"
>
</liveroom>
事件名称 | 说明 |
---|---|
onError | 错误事件回调 |
onWarning | 警告事件回调 |
onEnterRoom | 进入房间成功与否的事件回调 |
onExitRoom | 离开房间的事件回调 |
onSwitchRole | 切换角色的事件回调 |
onSwitchRoom | 切换房间的结果回调 |
onConnectOtherRoom | 请求跨房通话的结果回调 |
onDisConnectOtherRoom | 结束跨房通话的结果回调 |
onRemoteUserEnterRoom | 有用户加入当前房间 |
onRemoteUserLeaveRoom | 有用户离开当前房间 |
onUserVideoAvailable | 某远端用户发布/取消了主路视频画面 |
onUserSubStreamAvailable | 某远端用户发布/取消了辅路视频画面 |
onUserAudioAvailable | 某远端用户发布/取消了自己的音频 |
onFirstVideoFrame | SDK 开始渲染自己本地或远端用户的首帧画面 |
onFirstAudioFrame | SDK 开始播放远端用户的首帧音频 |
onSendFirstLocalVideoFrame | 自己本地的首个视频帧已被发布出去 |
onSendFirstLocalAudioFrame | 自己本地的首个音频帧已被发布出去 |
onRemoteVideoStatusUpdated | 远端视频状态变化的事件回调 |
onNetworkQuality | 网络质量的实时统计回调 |
onStatistics | 音视频技术指标的实时统计回调 |
onConnectionLost | SDK 与云端的连接已经断开 |
onTryToReconnect | SDK 正在尝试重新连接到云端 |
onConnectionRecovery | SDK 与云端的连接已经恢复 |
onSpeedTest | 服务器测速的结果回调 |
onCameraDidReady | 摄像头准备就绪 |
onMicDidReady | 麦克风准备就绪 |
onAudioRouteChanged | 当前音频路由发生变化(仅适用于移动设备) |
onUserVoiceVolume | 音量大小的反馈回调 |
onRecvCustomCmdMsg | 收到自定义消息的事件回调 |
onMissCustomCmdMsg | 自定义消息丢失的事件回调 |
onRecvSEIMsg | 收到 SEI 消息的回调 |
onStartPublishing | 开始向腾讯云直播 CDN 上发布音视频流的事件回调 |
onStopPublishing | 停止向腾讯云直播 CDN 上发布音视频流的事件回调 |
onStartPublishCDNStream | 开始向非腾讯云 CDN 上发布音视频流的事件回调 |
onStopPublishCDNStream | 停止向非腾讯云 CDN 上发布音视频流的事件回调 |
onSetMixTranscodingConfig | 设置云端混流的排版布局和转码参数的事件回调 |
onLocalRecordBegin | 本地录制任务已经开始的事件回调 |
onLocalRecording | 本地录制任务正在进行中的进展事件回调 |
onLocalRecordComplete | 本地录制任务已经结束的事件回调 |
可以在腾讯云后台生成一些测试帐号
腾讯云实时音频通话控制后台:https://console.cloud.tencent.com/trtc
- 示例和方法,参考示例工程中的
加载更多