该文章或问题已被删除

腾讯云 视频通话插件 Andord 和 IOS 支持多人通话 直播

价 格: ¥600.00

简 介: Uni-app 腾讯云 视频通话插件 支持: Android / IOS

跳转到 uniapp 插件市场

详细内容

腾讯云视频通话插件

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

  • 示例和方法,参考示例工程中的

9 只要进入roomid 相同的房间,即可进入视频对话。

10. 服务器端用户名加密计算 usersig

https://cloud.tencent.com/document/product/647/17275

0 个回答

正在加载...

这里空空如也,快来补一刀!

加载更多

回答问题或评论文章请先 或者 注册