腾讯互动白板+即时通讯+实时音视频,Android学生端接入
一、简介
线上教学方案:腾讯云互动白板(Tencent Interactive Whiteboard,TIW)+即时通信(Instant Messaging,IM)+实时音视频(Tencent RTC)实现老师线上互动教学
官方地址:
https://cloud.tencent.com/product/tiw
https://cloud.tencent.com/product/im
https://cloud.tencent.com/product/trtc
二、接入
1、前置步骤
需要在控制台申请appid,key等,参考:https://cloud.tencent.com/document/product/1137/39899
2、配置工程
app.build: 引用依赖库 rtc,im,eb,并指定app的cpu架构
android{ ... defaultconfig{ ... ndk { abiFilters "armeabi", "armeabi-v7a", "arm64-v8a" } ... } ...}...dependencies{ ... api 'com.tencent.liteav:LiteAVSDK_TRTC:8.7.10102' api 'com.tencent.imsdk:imsdk:4.8.50' api 'com.tencent.edu:TEduBoardSdk:2.6.0.98' ...}
project.build: app.build中的依赖文件下载出问题时,可以参考如下配置
buildscript { repositories { ... maven {url 'https://dl.bintray.com/tencentqcloudterminal/maven' } ... }}...allprojects { repositories { ... maven {url 'https://dl.bintray.com/tencentqcloudterminal/maven' } ... }}
Manifest: 添加以下权限
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><uses-permission android:name="android.permission.CAMERA" /><uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /><uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /><uses-permission android:name="android.permission.READ_PHONE_STATE" /><uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /><uses-permission android:name="android.permission.RECORD_AUDIO" /><uses-permission android:name="android.permission.VIBRATE" /><uses-permission android:name="android.permission.WAKE_LOCK" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.BLUETOOTH" /><uses-feature android:name="android.hardware.camera" /><uses-feature android:name="android.hardware.camera.autofocus" />
3、接入IM
- 初始化IM:
V2TIMManager.getInstance().initSDK(Context context, int sdkAppID, V2TIMSDKConfig config,V2TIMSDKListener listener)
sdkAppID: 上述控制台上申请的appid
config: 配置信息可为传null,目前只有配置日志等级,默认info级别
listener: 初始化回调接口,提供了网络状态和用户信息变化回调,所有V2TIMSDKListener
回调都可以参考下:
回调方法 | 描述 | 推荐操作 |
---|---|---|
onConnecting() | SDK 正在连接到腾讯云服务器 | 适合在 UI 上展示"正在连接"状态。 |
onConnectSuccess() | SDK 已经成功连接到腾讯云服务器 | 连接成功 |
onConnectFailed() | SDK 连接腾讯云服务器失败 | 可以提示用户当前网络连接不可用。 |
onKickedOffline() | 当前用户被踢下线 | 此时可以 UI 提示用户"您已经在其他端登录了当前账号,是否重新登录?" |
onUserSigExpired() | 在线时票据过期 | 请使用新签发的 UserSig 进行登录。 |
onSelfInfoUpdated() | 登录用户的资料发生了更新 | 可以在 UI 上更新自己的头像和昵称。 |
- 登录IM:
V2TIMManager.getInstance().login(String userId, String userSig, V2TIMCallback callback);
userId: 用户id,可自定义,不超过32位
userSig: IM SDK 登录票据(token),由业务服务器生成
callback: 操作结果回调,所有V2TIMCallback
回调都可以参考下表说明:
回调方法 | 描述 |
---|---|
void onError(int code, String desc); | 出错时回调,code码详情 |
void onSuccess(); | 成功时回调 |
注意:调用 IM SDK Login 成功登录后,将会开始计算 DAU,请根据业务场景合理使用 IM SDK Login操作,避免出现 DAU 过高的情况。
登录时机 | 说明 |
---|---|
App 启动后首次使用 IM SDK 的能力时 | 本项目为进入连麦模式才首次登录 |
IM SDK (V2TIMSDKListener) 抛出 onUserSigExpired 回调 | 登录票据 (token) 已过期,需要使用新的 UserSig进行登录 |
IM SDK(V2TIMSDKListener) 抛出 onKickOffline 回调 | 当前用户被踢下线,同平台多点登录时触发,可考虑重新登录或者下线 |
- 退出登录:
V2TIMManager.getInstance().logout(null);
为了降低 DAU,项目在结束连麦后,要及时调用退出登录。
- 加入群组:
群分类: 好友工作群(Work)、陌生人社交群(Public)、临时会议群(Meeting)、直播群(AVChatRoom);项目采用public群(需要审批),详细区别参考:官方群类型介绍
申请入群:
V2TIMManager.getInstance().joinGroup(String groupID, String message, V2TIMCallback callback);
参数 | 说明 |
---|---|
groupID | 群id,由主播端创建、业务服务器下发 |
message | 申请入群说明 |
callback | 发送申请状态回调 |
入群结果监听:void onApplicationProcessed(String groupID, V2TIMGroupMemberInfo opUser, booleanisAgreeJoin, String opReason)
其中isAgreeJoin
为true
表示同意加群,反之被拒绝。同意加群后,全员(包括请求者)收到onMemberEnter
回。
监听申请结果:
V2TIMManager.getInstance().setGroupListener(V2TIMGroupListener listener);
V2TIMGroupListener
:该回调接口能监听所有群相关的状态,重要方法参考下表:
方法 | 说明 |
---|---|
void onMemberEnter(String groupID, List<V2TIMGroupMemberInfo>memberList) | 有用户加入群(全员能够收到)memberList - 加入的成员 |
void onMemberLeave(String groupID, V2TIMGroupMemberInfomember) | 有用户离开群(全员能够收到)member - 离开的成员注意:群主只能解散群不能离开 |
void onMemberKicked(String groupID, V2TIMGroupMemberInfo opUser, List<V2TIMGroupMemberInfo>memberList) | 某些人被踢出某群(全员能够收到)opUser - 处理人memberList - 被踢成员 |
void onGroupDismissed(String groupID, V2TIMGroupMemberInfoopUser) | 群被解散了(全员能收到)opUser - 处理人 |
void onGroupRecycled(String groupID, V2TIMGroupMemberInfoopUser) | 群被回收(全员能收到)opUser - 处理人 |
void onApplicationProcessed(String groupID, V2TIMGroupMemberInfo opUser, boolean isAgreeJoin, StringopReason) | 加群请求已经被群主或管理员处理了(只有申请人能够收到)opUser -处理人isAgreeJoin - 是否同意加群opReason - 处理原因 |
4、接入RTC
备注:rtc使用的房间为im中的房间
- 概念:
名称 | 说明 |
---|---|
通话模式 | 无旁路,本项目不用 |
直播模式 | 有旁路 |
接口机 | 用于连麦互动,费用高 |
代理机 | 用于观众拉流观看,费用低 |
- 初始化RTC:
- 获取 TRTCCloud 实例:
TRTCCloud.sharedInstance(context);<......
原文转载:http://www.shaoqun.com/a/854334.html
跨境电商:https://www.ikjzd.com/
汇通天下:https://www.ikjzd.com/w/2055
c88是什么:https://www.ikjzd.com/w/1017.html
周宁:https://www.ikjzd.com/w/1647
腾讯互动白板+即时通讯+实时音视频,Android学生端接入一、简介线上教学方案:腾讯云互动白板(TencentInteractiveWhiteboard,TIW)+即时通信(InstantMessaging,IM)+实时音视频(TencentRTC)实现老师线上互动教学官方地址:https://cloud.tencent.com/product/tiwhttps://cloud.tencent.
亚马逊选品思路,想要打造爆款离不开这几点!:https://www.ikjzd.com/articles/109585
Shopify Q3财报:GMV148亿美元,营收同比增长45%!:https://www.ikjzd.com/articles/109586
东南亚最难通关的印尼"红灯期"马上到了,你有过关绝招吗?:https://www.ikjzd.com/articles/109623
出口越南的注意了!受事故影响,各大港口都堵塞了!:https://www.ikjzd.com/articles/109624
他把舌头伸进两腿之间 舌尖逗弄她颤抖的小核:http://lady.shaoqun.com/a/248221.html
男朋友在车里㖭我全身 男生技术好是一种体验:http://lady.shaoqun.com/m/a/248255.html
口述:老婆在客厅当我面睡猛男老婆猛男客厅:http://lady.shaoqun.com/m/a/36578.html
女人喂男人吃私人部位 女人下面被吃有多爽:http://www.30bags.com/m/a/249785.html
2021年深圳啤酒节在哪里举行:http://www.30bags.com/a/479643.html
深圳大榕树生态营地门票多少钱:http://www.30bags.com/a/479644.html
深圳大榕树生态营地有什么好玩的:http://www.30bags.com/a/479645.html
深圳大榕树生态营地在哪里(地址+怎么去):http://www.30bags.com/a/479646.html
No comments:
Post a Comment