我的编程空间,编程开发者的网络收藏夹
学习永远不晚

使用vue3实现一个人喵交流小程序

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

使用vue3实现一个人喵交流小程序

前言

相信很多养猫的人都很想跟自己的猫进行沟通,当猫咪发出各种不同声音的喵喵叫时,通常都会问猫咪怎么了啊,是不是饿了啊,还是怎样怎样的。我也曾经搜索过有没有宠物翻译的软件,现在自己来实现一个吧[手动狗头]。

微信小程序是不支持直接使用 vue 进行开发的,但目前行业中已经有不少解决方案去支持用各种开发框架开发跨端应用了。

Taro 3.0版本开始支持使用 Vue3 进行开发,那就用 Taro 来实现我们的微信小程序吧。

初始化项目

Taro 的详细使用可以参考官方文档,先全局安装 @tarojs/cli


npm install -g @tarojs/cli

安装成功后用 taro 命令来创建模板项目:


taro init catApp

这里选择了 vue3-nutUI 框架,这个框架功能没有 taro-ui 多,但 taro-ui 只支持 react,无奈只能用了。

设计

毕竟没有视觉出图,一切只能靠自己。马上打开 PPT,简简单单画个草图。

主要有两块功能组成:

  • 输入想对猫咪说的话,转成喵语进行播放
  • 录音,录下喵叫声,转成文字,也可以播放录音

代码实现

按需加载

按需引入 vue3-nutUI 框架,刚才在初始化项目时已经是按需引入了,在 app.js 中,按需引入项目所需要用到的组件即可


import { createApp } from 'vue'
import { Button,Toast,Tabbar,TabbarItem,Icon,Avatar,Input  } from '@nutui/nutui-taro';
import '@nutui/nutui-taro/dist/style.css';

const App = createApp()
App.use(Button).use(Toast).use(Tabbar).use(TabbarItem).use(Icon).use(Avatar).use(Input)

export default App

播放音频

当输入想对猫主人的话,转成喵语后,想要播放,就得使用 Taro 提供的播放音频接口。播放音频现在使用官方更加推荐的 Taro.createInnerAudioContext 接口了,原先的 Taro.stopVoice 和 Taro.playVoice 不再维护了。


const innerAudioContext = Taro.createInnerAudioContext();
Taro.setInnerAudioOption({
	obeyMuteSwitch: false,
});

innerAudioContext.class="lazy" data-src = 'xxx.mp3';
innerAudioContext.play();

innerAudioContext.onPlay(()=>{
	console.log('开始播放')
})
innerAudioContext.onEnded(()=>{
	console.log('播放结束')
})

obeyMuteSwitch 配置是(仅在 iOS 生效)是否遵循静音开关,设置为 false 之后,即使是在静音模式下,也能播放声音,默认是true的,这里没注意,疑惑了好久,还以为我自己播放音频有问题,原来是给静音了。

录音

要给猫主人录音就需要用到 Taro.getRecorderManager 录音接口


const recorderManager = Taro.getRecorderManager();
recorderManager.onStart(() => {
	console.log("recorder start");
});
recorderManager.onStop((res) => {
	console.log("recorder stop", res);
	const { tempFilePath, duration } = res;
	// tempFilePath 是录音文件的临时路径
	// duration 是录音时长
	// 这里需要播放时,设置录音文件地址,则可以播放录音
	innerAudioContext.class="lazy" data-src = tempFilePath;
	innerAudioContext.play();
});

长按事件

录音可能大家都习惯了长按时开始录音,松手时完成录音。vue3-nutUI 框架中并没有给按钮提供长按事件,所以需要用小程序原生提供的 longpress 事件,这个事件是手指触摸后,超过350ms时就会触发该事件,并且不会触发到 tap 事件。想要松手结束录音,需要结合 touchend 事件,才能完成长按录音,松手结束的需求。


<nut-button block type="info" icon="microphone" @longpress="handleLongpress" @touchend="handleTouchend">
	录音
</nut-button>

运行调试

执行 npm run dev:weapp 项目,会一直监听文件修改并实时编译成小程序,然后打开微信开发者工具,导入项目,选择打开 catApp 根目录即可,就可以进行预览了。

总结

Taro 的优势在写一次代码适配多端,如果只是单纯的用来开发一个微信小程序,那还是绕得远了,直接原生开发不香吗。不过能够使用 Vue3 来进行开发,这点还是比较香的,但是 Vue3 内部实现使用了 Proxy ,在低版本的系统(iOS 9、Android 6)下还是无法直接使用,而目前也不可能直接抛弃这些用户,所以还是不是很实际。

到了这里可能有的人就要问了,怎么实现喵语转换呢??港真,目前全球也没研究出这种能跟猫进行交流的能力吧,这里只是用的一些本地资源文件,写死的数据,大家玩玩娱乐一下就好别太当真。等到行业中有了这种能力,提供接口,再接入就真正实现了功能。就像 旷视 一直在往人工智能、深度学习的领域深耕,有没有可能在训练各种喵叫声以及结合各种喵叫场景,能研发出这种简单交流的能力,也是有可能的吧。

完整代码放在 github 仓库,有兴趣的可以下载玩玩。

到此这篇关于使用vue3实现一个人喵交流小程序的文章就介绍到这了,更多相关vue3人喵交流小程序内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

使用vue3实现一个人喵交流小程序

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

怎么使用vue3实现一个人喵交流小程序

本篇内容主要讲解“怎么使用vue3实现一个人喵交流小程序”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用vue3实现一个人喵交流小程序”吧!前言相信很多养猫的人都很想跟自己的猫进行沟通,当
2023-06-25

如何在shell中使用AWK实现一个日历小程序

如何在shell中使用AWK实现一个日历小程序?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。代码段:function whichWeek(y, m, d, s) { s
2023-06-09

小程序使用scroll-view实现一个滑动列表功能

scroll-view可实现一个可滚动的视图区域,下面这篇文章主要给大家介绍了关于小程序使用scroll-view实现一个滑动列表功能的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
2022-11-13

用Python实现一个简单的抽奖小程序

目录写在前面 实现结果 1 数据拉取2 数据清洗、去重3 中奖数据抽取python 相关知识点总结写在前面 因为粉丝福利,所以想自己写一个抽奖小程序,用于实现粉丝抽奖结果。原本规划的比较理想:实时拉取评论用户信息数据清洗,数据去重存储
2023-05-12

java中怎么利用gui实现一个计算器小程序

java中怎么利用gui实现一个计算器小程序,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。代码:package gui; i
2023-06-20

怎么在android中利用Socket实现一个聊天小程序

本篇文章为大家展示了怎么在android中利用Socket实现一个聊天小程序,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。具体内容如下服务器端:package org.hwq.echo; impo
2023-05-31

如何使用PHP实现微信小程序的公交查询功能?

如何使用PHP实现微信小程序的公交查询功能?随着智能手机的普及,微信小程序成为了一种非常流行的应用形式。微信小程序可以在微信中直接使用,无需下载安装,使用方便,功能丰富。在微信小程序的开发中,公交查询功能是非常常见的需求。本文将介绍如何使用
2023-10-27

怎么在小程序中如何实现一个可截断的瀑布流组件

这期内容当中小编将会给大家带来有关怎么在小程序中如何实现一个可截断的瀑布流组件,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。瀑布流是一种常见的布局方式,实现的方式有许多,比如直接分两列,然后控制在左右两列
2023-06-28

怎么使用Android快速实现一个财务APP程序

这篇文章主要介绍了怎么使用Android快速实现一个财务APP程序的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用Android快速实现一个财务APP程序文章都会有所收获,下面我们一起来看看吧。一,系统的
2023-07-02

Python使用django框架实现多人在线匿名聊天的小程序

最近看到好多设计类网站,都提供了多人在线匿名聊天的小功能,感觉很有意思,于是基于python的django框架自己写了一个,支持手动实时更名,最下方提供了完整的源码.在线聊天地址(无需登录,开一个窗口,代表一个用户): http://zha
2022-06-04

利用java实现一个微信小程序登录态维护功能

利用java实现一个微信小程序登录态维护功能?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。作为服务端,如果想获得到使用微信小程序的会员信息,就需要小程序作为客户
2023-05-31

怎么在微信小程序中利用canvas实现一个水平、垂直居中效果

本篇文章为大家展示了怎么在微信小程序中利用canvas实现一个水平、垂直居中效果,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。wxml
2023-06-09

怎么用css transition属性实现一个带动画显隐的微信小程序部件

今天小编给大家分享一下怎么用css transition属性实现一个带动画显隐的微信小程序部件 的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们
2023-06-26

编程热搜

目录