腾讯云IM Web端支持发送语音消息

腾讯即时通讯IM的WebSDK不支持createAudioMessage, 只有小程序才能用. 经查在 tim-js-friendship.js下的createAudioMessage里 做了是否为小程序的判断,

key: "createAudioMessage", value: function (e) {
	if (ni) {	// 如果是小程序, 创建 audio message
		var t = e.payload.file;
		if (ni) {
			var n = {
					url   : t.tempFilePath,
					name  : t.tempFilePath.slice(t.tempFilePath.lastIndexOf("/") + 1),
					size  : t.fileSize,
					second: parseInt(t.duration) / 1e3,
					type  : t.tempFilePath.slice(t.tempFilePath.lastIndexOf(".") + 1).toLowerCase()
				};
				e.payload.file = n
		}
		var o         = this.getMyUserID();
		e.currentUser = o;
		var r         = new Om(e), a = new gm({
		second: Math.floor(t.duration / 1e3),
		size  : t.fileSize,
		url   : t.tempFilePath,
		uuid  : this._generateUUID()}), 
		s         = this._getNickAndAvatarByUserID(o);
		return r.setElement(a), r.setNickAndAvatar(s), r.setNameCard(this._getNameCardByGroupID(r)), this._messageOptionsMap.set(r.ID, e), r
	}
	...

不是小程序的时候需要加上以下代码

else {
	var t          = e.payload.file;
	t.files   = [t];
	var o          = this.getMyUserID();
	e.currentUser  = o;
	var r          = new Om(e), a = new gm({
		second: t.duration,
		size  : t.size,
		url   : t.tempFilePath,
		uuid  : this._generateUUID()
		}),
		s          = this._getNickAndAvatarByUserID(o);
		return r.setElement(a), r.setNickAndAvatar(s), r.setNameCard(this._getNameCardByGroupID(r)), this._messageOptionsMap.set(r.ID, e), r
}

外部调用的时候传入File, 并给File设置duration字段(单位秒)

const file     = new File([data.blob], data.id, {type: data.blob.type});	// 创建file
file.duration  = duration;	// 给file设置时长(单位秒)

// 创建audio message
const message  = this.tim.createAudioMessage({
		to              : this.toAccount,
		conversationType: this.currentConversationType,
		payload         : {
			file: file
		},
		onProgress      : percent => {
			this.$set(message, 'progress', percent) // 手动给message 实例加个响应式属性: progress
		}
});

// 发送音频消息
this.tim.sendMessage(message).then(() => {
		}).catch(error => {
		});

这样就可以在web端发送音频消息了.

顺便鄙视下腾讯的技术和产品, 挺简单的东西 就是不给加, 强推垃圾又难用的小程序.

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值