【uni-app】模仿微信实现简易发送/取发语音功能

本文介绍了使用uni-app开发微信聊天demo时,如何实现语音发送功能。从事件绑定、音频录制、取消发送判断、提交音频、音频长度处理到播放语音的详细步骤,旨在模拟微信的语音交互体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学习uni-app开发,实现了一个微信聊天的demo,简单记录下其中的语音发送功能。这里只是介绍从发送到显示的过程,暂不涉及websocket做聊天对话。若有错误和不足之处留言指正,谢谢!

功能就不细说了,最终效果的UI界面如下,用户昵称头像皆为测试数据。

长按按住说话按钮弹出遮罩层按住说话,直接松开即可发送语音。

若向左上方滑动松开后取消发送当前语音。

一. 绑定事件 

首先给按钮是绑定事件,需要给按钮绑定三个事件

1.touchstart事件会在触摸按钮时触发,可以获取手指的初始坐标;

2.touchmove事件在触摸后移动手指时触发,可以用来计算手手指的滑动距离;

3.touchend事件在松开手指时候触发。

<button type="default" 
 v-show="mode === 'voice'" 
 @touchstart="handleTouchStart"
 @touchmove="handleTouchMove"
 @touchend="handleTouchEnd"
>按住 说话</button>

页面遮罩层

<!-- 语音遮罩层 -->
<view class="voice-mask" v-show="mask">
	<!--语音条 -->
	<view class="voice-bar voice-del" :class="{voiceDel:needCancel}" :style={width:getVoiceBarWidth}>
		<image src="../static/icon/wave.png" class="voice-volume" :class="{volumeDel:needCancel}"></image>
		<view class="trangle-bottom" :class="{trangleDel:needCancel}"></view>
	</view>
	<!-- 底部区域 -->
	<view class="voice-send">
		<!-- 取消和转文字图标 -->
		<view class="voice-middle-wrapper">
			<!-- 取消 -->
			<view class="voice-left-wrapper">
				<view class="cancel-del" :class="{delTip:needCancel}">松开 取消</view>
				<view class="voice-middle-inner close" :class="{bigger:needCancel}">
					<image src="../static/icon/close
uniapp中,可以通过使用uniRecorder录音插件来实现发送语音功能。首先,需要在页面中创建一个语音条的结构,可以参考引用\[2\]中的示例代码。在点击发送按钮或者其他触事件时,可以调用uniRecorder录音插件的相关方法来进行录音操作。录音完成后,可以获到录音文件的路径和时长等信息。接下来,可以根据业务需求设置录音文件的格式、大小限制等参数。最后,可以通过网络请求将录音文件上传到服务器,并在上传成功后进行相应的处理,比如更新页面显示、发送消息等操作。总之,通过使用uniRecorder录音插件和相关的uniapp技术,可以实现uniapp发送语音功能。 #### 引用[.reference_title] - *1* *3* [uniapp实现上传语音的原理](https://blog.csdn.net/qq_70703397/article/details/130505939)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [【uni-app模仿微信实现简易发送/语音功能](https://blog.csdn.net/weixin_43655896/article/details/122905513)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值