uniapp:记录使用uniapp对接腾讯音视频插件(TUICallKit )

这篇具有很好参考价值的文章主要介绍了uniapp:记录使用uniapp对接腾讯音视频插件(TUICallKit )。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

官方地址:TUICallKit—API
uniapp插件地址:腾讯云音视频通话插件TencentCloud-TUICallKit

1、到鷈插件地址,购买插件,并绑定到自己的项目中。

uniapp:记录使用uniapp对接腾讯音视频插件(TUICallKit )
uniapp:记录使用uniapp对接腾讯音视频插件(TUICallKit )
uniapp:记录使用uniapp对接腾讯音视频插件(TUICallKit )
第3步的报名,一定要与最后打包包名一致。输入包名后:下一步-------确定。

2、开通服务

1.登录到 即时通信 IM 控制台,单击创建新应用,在弹出的对话框中输入您的应用名称,并单击确定。
uniapp:记录使用uniapp对接腾讯音视频插件(TUICallKit )
2.进入刚才创建的应用,选择 基本配置 并在页面的右下角找到 开通腾讯实时音视频 服务功能区,先免费体验,等正式上线在加购。
uniapp:记录使用uniapp对接腾讯音视频插件(TUICallKit )
3.在同一页面找到 SDKAppID密钥 ,后续步骤会用到
uniapp:记录使用uniapp对接腾讯音视频插件(TUICallKit )

3.HBuilder导入插件,并发行自定义基座进行调试。

1.导入云端插件。
uniapp:记录使用uniapp对接腾讯音视频插件(TUICallKit )
2.打自定义基座,准备调试。

4.准备工作

1.项目中会用到 GenerateTestUserSig.js(计算userSig)lib-generate-test-usersig-es.min.js两个JS文件。前往github拷贝到自己项目中
uniapp:记录使用uniapp对接腾讯音视频插件(TUICallKit )
uniapp:记录使用uniapp对接腾讯音视频插件(TUICallKit )
uniapp:记录使用uniapp对接腾讯音视频插件(TUICallKit )
2.打开GenerateTestUserSig.js将之前获取到的SDKAppID密钥 填入文件内。

Github 中的示例代码使用了 genTestUserSig 函数在本地计算 userSig 是为了更快地让您跑通当前的接入流程,但该方案会将您的 SecretKey 暴露在 App 的代码当中,这并不利于您后续升级和保护您的 SecretKey,所以我们强烈建议您将 userSig 的计算逻辑放在服务端进行,并由 App 在每次使用 TUICallKit 组件时向您的服务器请求实时计算出的 userSig。
uniapp:记录使用uniapp对接腾讯音视频插件(TUICallKit )

5.页面中开始使用

1.APP.vue 引入腾讯音视频插件

// 计算userSig
import TIM from 'tim-wx-sdk'; // 自行 npm install tim-wx-sdk 进行安装(安装TIM 是为了之后发起群聊语音/视频)
import { genTestUserSig } from './utils/GenerateTestUserSig.js';
// 原生插件引入提供如下接口:1V1音视频,群聊音视频。
const TUICallKit = uni.requireNativePlugin('TencentCloud-TUICallKit'); 
// 监听通话的状态,例如:异常、通话开始、结束等。
const TUICallingEvent = uni.requireNativePlugin('globalEvent'); 
// 目前仅提供如下接口:结束通话,设置用户视频画面的渲染模式
const TUICallEngine = uni.requireNativePlugin('TencentCloud-TUICallKit-TUICallEngine');
export default {
	onLaunch: function() {
		// 将原生插件挂载到 uni 上
		uni.$TUICallKit = TUICallKit;
		uni.$TUICallingEvent = TUICallingEvent;
		uni.$TUICallEngine = TUICallEngine;
		
		// 群聊:语音/视频,需要用到TIM
		uni.$TUIKit = TIM.create({
			SDKAppID: genTestUserSig('').sdkAppID
		});
		uni.$TIM = TIM;
	}
}

2.在首页 index.vue 完成 TUICallKit 组件的登录

<script>
	import { genTestUserSig } from '../../utils/GenerateTestUserSig.js';
	export default {
		onLoad() {
			// 请求接口,获取用户数据,这里需要用到 用户id,头像,姓名。(之后拨打音视频需要用到)
			if (res.code == 1) {
				let user_id = res.data.user_id+='';
				let globalData = {
					SDKAppID: genTestUserSig('').sdkAppID,
					userID: user_id, // 必须是字符串
					userSig: genTestUserSig(user_id).userSig
				}
				// 登录 TIM
				uni.$TUIKit.login({
						userID: user_id,
						userSig: genTestUserSig(user_id).userSig
					});
				// 登录
				uni.$TUICallKit.login(globalData, (val) => {
				    if (val.code === 0) {
						// 开启悬浮窗
						uni.$TUICallKit.enableFloatWindow(true);
				        console.log('login success');
						// 设置用户昵称,头像
						uni.$TUICallKit.setSelfInfo({
							nickName: res.data.nickname,
							avatar: res.data.avatar
						}, (val) => {
						    if (val.code === 0) {
						        console.log('setSelfInfo success');
						    } else {
						        console.log(val.msg);
						    }
						});
							
				    } else {
				        console.log(val.msg);
				    }
				});
			}
		}
	}
</script>

3.在聊天页面拨打语音,或视频。

if(this.sessionInfo.session_type =='normal'){
	console.log('1v1:')
	uni.$TUICallKit.call({
		userID: this.sessionInfo.friend_uid, // 对方用户id
		callMediaType: this.callMediaType, // 语音通话(1)、视频通话(2)
	}, (res) => {
		if (res.code === 0) {
			console.log('call success');
		} else {
			console.log(res.msg);
		}
	});
}else{
	console.log('群聊:')
	// 群聊看下方实现方法:
}

uniapp:记录使用uniapp对接腾讯音视频插件(TUICallKit )

uniapp:记录使用uniapp对接腾讯音视频插件(TUICallKit )

4.如果你需要监听通话操作,可以写在app.vue中,更多监听请查看官方API文档

uni.$TUICallingEvent.addEventListener('onCallCancelled', (res) => {
	console.log('通话已取消:');
});

uni.$TUICallingEvent.addEventListener('onCallBegin', (res) => {
	console.log('通话已接通:');
});

uni.$TUICallingEvent.addEventListener('onCallEnd', (res) => {
	console.log('通话结束:');
});

群聊知识点

1.首先群聊语音依赖TIM。需要先用TIM创建群组获取到群组id,之后才可以使用groupCall发起群聊,(这是官方的描述注意:使用群组通话前需要创建IM 群组)
2.群聊内容,首先在:app.vue 中引入依赖项,index.vue中登录TIM
3.需要注意的是:发起群语音选中的用户id,必须是已经登录了uni.$TUIKit.loginuni.$TUICallKit.login的用户(userID:必须是字符串)。我们app更新后,可能会出现部分用户没有更新,那么他也就没有用上边两个API登录。所以无法使用TIM的功能
4.最后是创建群聊(群聊页面请自行编写css,这里只记录js部分):

<script>
	export default {
		data() {
			return {
				list: [], // 当前群成员
				ids: [], // 已选中的成员id:数据结构:[233,548,786]
				session_id: '', // 当前群id
				groupID: '', // TIM创建群组id
				sessionInfo:{} // 群信息
			}
		},
		methods:{
			// 发起群语音/视频
			async submit() {
				if (this.ids.length == 0) {
					uni.showToast({
						icon: 'none',
						title: '请先选择联系人'
					});
				} else {
					// 将本机用户id插入群成员中
					let my_user_id = uni.getStorageSync('userinfo').user_id;
					let userIDList = [];
					let groupList = [];
					this.ids.unshift(my_user_id);
					this.ids.forEach(item=>{
						userIDList.push(item+'') // 注意用户id,必须要求是字符串。
					})
					for (let i = 0; i < userIDList.length; i++) {
						const user = {
							userID: userIDList[i],
						};
						groupList[i] = user;
					}
					// 创建群聊
					await this.createGroup(groupList);
					if (this.groupID) {
						uni.$TUICallKit.groupCall({
							groupID: this.groupID,
							userIDList: userIDList,
							callMediaType: 1, // 1语音,2视频
						}, (res) => {
							if (res.code === 0) {
								console.log('call success');
								this.list.forEach(item=>{
									item.checked = false;
								})
								this.ids = [];
							} else {
								console.log(res.msg);
							}
						});
					}
				}
			},
			// 创建IM群聊
			createGroup(groupList) {
				return uni.$TUIKit.createGroup({
					type: uni.$TIM.TYPES.GRP_MEETING,
					name: this.sessionInfo.name, // 群名称
					memberList: groupList, // 如果填写了 memberList,则必须填写 userID
				}).then((imResponse) => {
					console.log(imResponse)
					this.groupID = imResponse.data.group.groupID; // 创建成功的群组id
				}).catch((imError) => {
					console.warn(imError); // 创建群组失败的相关信息
				});
			}
		}
	}
</script>

uniapp:记录使用uniapp对接腾讯音视频插件(TUICallKit )
uniapp:记录使用uniapp对接腾讯音视频插件(TUICallKit )

提示:

1.在使用uni.$TUICallKit.call({userID:123})拨打之前,假设对方用户id是123,
对方需要先完成登录uni.$TUICallKit.login,否则会提示无效的用户id。设置昵称和头像是为了在拨打电话界面显示用户信息。
2.userSig官方推荐放在服务器进行计算,为了效果这里直接使用了官方提供的demoGenerateTestUserSig.js进行计算。文章来源地址https://www.toymoban.com/news/detail-494799.html

到了这里,关于uniapp:记录使用uniapp对接腾讯音视频插件(TUICallKit )的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 腾讯云音视频及融合通信技术

    随着直播、游戏、电商、VR等场景的普及,基于音视频的实时娱乐社交、3D虚拟直播、AI视频招聘、元宇宙等新场景也纷纷涌现,下面一起走进音视频的世界。 腾讯云音视频产品,从底层编解码、到传输网络、到平台架构、再到用户终端,无一不决定产品“生死”,与此同时,

    2024年02月11日
    浏览(39)
  • 【新知实验室】TRTC腾讯实时音视频动手实验

    https://cloud.tencent.com/document/product/647/16788 应用 TRTC 通过应用的形式来管理不同的业务或项目。您可以在 TRTC 控制台 给不同的业务或项目分别创建不同的应用,从而实现业务或项目数据的隔离。每个腾讯云账号最多可以创建100个 TRTC 应用。 SDKAppID SDKAppID(应用标识/应用 ID)是腾

    2024年02月01日
    浏览(36)
  • 【新知实验室】——腾讯云TRTC实时音视频体验

    【新知实验室】——腾讯云TRTC实时音视频体验 前言 一、腾讯实时音视频TRTC是什么? 二、DEMO体验 1.注册腾讯云账号 2.使用实时音视频(需先开通) 3.查看项目(查看密钥和快速上手操作) 4.运行快速上手项目(静态页面) 随着短视频行业的不断发展,人们对实时音视频的需

    2024年02月11日
    浏览(29)
  • GB28181设备接入侧如何对接外部编码后音视频数据并实现预览播放

     技术背景 我们在对接GB28181设备接入模块的时候,遇到这样的技术诉求,好多开发者期望能提供编码后(H.264/H.265、AAC/PCMA)数据对接,确保外部采集设备,比如无人机类似回调过来的数据,直接通过模块,对接到GB28181平台侧,此外,还期望不支持或者内网没有外部网络权限

    2024年02月12日
    浏览(32)
  • Android 音视频入门 (四)- 记录一次MediaCodec ,天呐

    isEncoding = true //开始编码 mMediaCodec.start() //构建连接器。 mWorkerThread = HandlerThread(“WorkerThread-Encoder”) mWorkerThread.start() mHandler = Handler(mWorkerThread.looper) } 注意,我们并不在此处就开启Muxer,我们会在子线程中接受数据的时候的某个状态开始进行混合。 mCameraDevice.setPreviewCallback {

    2024年04月16日
    浏览(31)
  • 【声网】实现web端与uniapp微信小程序端音视频互动

    利用声网实现音视频互动 注册声网账号 进入Console 成功登录控制台后,按照以下步骤创建一个声网项目: 展开控制台左上角下拉框,点击 创建项目 按钮。 在弹出的对话框内,依次选择 项目类型 ,输入 项目名称 ,选择 场景标签 和 鉴权机制 。其中鉴权机制推荐选择 安全

    2024年04月27日
    浏览(38)
  • Linphone3.5.2 ARM RV1109音视频对讲开发记录

    说明 这是一份事后记录,主要记录的几个核心关键点,有可能很多细节没有记上,主要是方便后面自己再找回来! 版本 3.5.2 一些原因选的是这样一个旧的版本! 新的开发最好选新一些的版本吧, 像 4.5, 4.2, 3.8 这一类的! 因为之前没有开发过Linphone的应用,所以对整个框架不了

    2024年02月07日
    浏览(22)
  • 全志F1C100s主线linux入坑记录 (6)音视频播放(视频播放软解)

    百度网站 (1)下载安装声卡补丁 参考挖坑网大神提供的声音驱动以及声音卡驱动补丁文件下载文件下载 全志F1C100s声卡补丁 解压文件打上补丁 (2)配置声卡 修改设备树文件添加声卡节点 内核配置 (3)linux内核编译烧录 可以看到声卡已经挂载了 (4)使用声卡 安装alsa-u

    2024年02月07日
    浏览(30)
  • 私藏工具分享 300+++ 编程使用工具,js、css、动画插件、可视化、文件操作、音视频、智能化、编辑器、2D3D、其他常用工具、跨平台框架、代码工具、图像工具、文件转换、vue3生态、后端常用插件

    目录 Javascript 工具 可视化 动画插件 文件操作 音视频 智能化 编辑器 2D 3D 其他常用js 跨平台 框架 Flutter Electron Uniapp CSS 动画 工具 UI 编程工具 代码工具 图像工具 文件转换 Vue3生态工具 1.Web UI库 2.移动UI库 3.相关工具 4.可视化 5.插件 6.相关生态 7.动画 8.音视频 全栈-后端 插件

    2024年02月21日
    浏览(42)
  • 开源IM即时通讯源码-社交+电商+音视频+直播-pc+web+ios+安卓-uniapp+php+mysql

      / 产品介绍 /     即时通讯源码是一个平台或聊天应用程序,使用户能够发送和接收即时消息并进行连接。如今,在线交流已成为一种新常态。目前据统计超过30亿人定期使用聊天应用程序而这一数字将保持持续增长。目前您可能需要一个新的聊天应用程序来简化您自己组织

    2024年02月05日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包