最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用vue3實現(xiàn)一個人喵交流小程序

 更新時間:2021年11月09日 10:01:05   作者:我是胖虎  
Vue3 在經(jīng)過多個開發(fā)版本的迭代后,終于迎來了它的正式版本,下面這篇文章主要給大家介紹了關于如何使用vue3實現(xiàn)一個人喵交流小程序的相關資料,需要的朋友可以參考下

前言

相信很多養(yǎng)貓的人都很想跟自己的貓進行溝通,當貓咪發(fā)出各種不同聲音的喵喵叫時,通常都會問貓咪怎么了啊,是不是餓了啊,還是怎樣怎樣的。我也曾經(jīng)搜索過有沒有寵物翻譯的軟件,現(xiàn)在自己來實現(xiàn)一個吧[手動狗頭]。

微信小程序是不支持直接使用 vue 進行開發(fā)的,但目前行業(yè)中已經(jīng)有不少解決方案去支持用各種開發(fā)框架開發(fā)跨端應用了。

Taro 3.0版本開始支持使用 Vue3 進行開發(fā),那就用 Taro 來實現(xiàn)我們的微信小程序吧。

初始化項目

Taro 的詳細使用可以參考官方文檔,先全局安裝 @tarojs/cli

npm install -g @tarojs/cli

安裝成功后用 taro 命令來創(chuàng)建模板項目:

taro init catApp

這里選擇了 vue3-nutUI 框架,這個框架功能沒有 taro-ui 多,但 taro-ui 只支持 react,無奈只能用了。

設計

畢竟沒有視覺出圖,一切只能靠自己。馬上打開 PPT,簡簡單單畫個草圖。

主要有兩塊功能組成:

  • 輸入想對貓咪說的話,轉(zhuǎn)成喵語進行播放
  • 錄音,錄下喵叫聲,轉(zhuǎn)成文字,也可以播放錄音

代碼實現(xiàn)

按需加載

按需引入 vue3-nutUI 框架,剛才在初始化項目時已經(jīng)是按需引入了,在 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

播放音頻

當輸入想對貓主人的話,轉(zhuǎn)成喵語后,想要播放,就得使用 Taro 提供的播放音頻接口。播放音頻現(xiàn)在使用官方更加推薦的 Taro.createInnerAudioContext 接口了,原先的 Taro.stopVoice 和 Taro.playVoice 不再維護了。

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

innerAudioContext.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.src = tempFilePath;
	innerAudioContext.play();
});

長按事件

錄音可能大家都習慣了長按時開始錄音,松手時完成錄音。vue3-nutUI 框架中并沒有給按鈕提供長按事件,所以需要用小程序原生提供的 longpress 事件,這個事件是手指觸摸后,超過350ms時就會觸發(fā)該事件,并且不會觸發(fā)到 tap 事件。想要松手結束錄音,需要結合 touchend 事件,才能完成長按錄音,松手結束的需求。

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

運行調(diào)試

執(zhí)行 npm run dev:weapp 項目,會一直監(jiān)聽文件修改并實時編譯成小程序,然后打開微信開發(fā)者工具,導入項目,選擇打開 catApp 根目錄即可,就可以進行預覽了。

總結

Taro 的優(yōu)勢在寫一次代碼適配多端,如果只是單純的用來開發(fā)一個微信小程序,那還是繞得遠了,直接原生開發(fā)不香嗎。不過能夠使用 Vue3 來進行開發(fā),這點還是比較香的,但是 Vue3 內(nèi)部實現(xiàn)使用了 Proxy ,在低版本的系統(tǒng)(iOS 9、Android 6)下還是無法直接使用,而目前也不可能直接拋棄這些用戶,所以還是不是很實際。

到了這里可能有的人就要問了,怎么實現(xiàn)喵語轉(zhuǎn)換呢??港真,目前全球也沒研究出這種能跟貓進行交流的能力吧,這里只是用的一些本地資源文件,寫死的數(shù)據(jù),大家玩玩娛樂一下就好別太當真。等到行業(yè)中有了這種能力,提供接口,再接入就真正實現(xiàn)了功能。就像 曠視 一直在往人工智能、深度學習的領域深耕,有沒有可能在訓練各種喵叫聲以及結合各種喵叫場景,能研發(fā)出這種簡單交流的能力,也是有可能的吧。

完整代碼放在 github 倉庫,有興趣的可以下載玩玩。

到此這篇關于使用vue3實現(xiàn)一個人喵交流小程序的文章就介紹到這了,更多相關vue3人喵交流小程序內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 淺析Vue3中useRouter怎么在Vue組件外使用

    淺析Vue3中useRouter怎么在Vue組件外使用

    useRouter?是?Vue?3?Composition?API?中的鉤子(hook),它只能在?Vue?組件中使用,本文主要來和大家探討一下如何讓他在組件外使用,感興趣的可以了解下
    2024-11-11
  • 帶你一步步從零搭建一個Vue項目

    帶你一步步從零搭建一個Vue項目

    Vue.js是現(xiàn)在比較優(yōu)秀的Web前端框架,非常推薦大家入門學習,這篇文章主要給大家介紹了關于如何一步步從零搭建一個Vue項目的相關資料,文中通過圖文以及實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-05-05
  • 3種vue路由傳參的基本模式

    3種vue路由傳參的基本模式

    這篇文章主要為大家詳細介紹了vue路由傳參的3種基本模式,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • 聊聊Vue 中 title 的動態(tài)修改問題

    聊聊Vue 中 title 的動態(tài)修改問題

    這篇文章主要介紹了 Vue 中 title 的動態(tài)修改問題,文中通過兩種方案給大家介紹了title的傳遞問題 ,需要的朋友可以參考下
    2019-06-06
  • vue?async?await?promise等待異步接口執(zhí)行完畢再進行下步操作教程

    vue?async?await?promise等待異步接口執(zhí)行完畢再進行下步操作教程

    在Vue中可以使用異步函數(shù)和await關鍵字來控制上一步執(zhí)行完再執(zhí)行下一步,這篇文章主要給大家介紹了關于vue?async?await?promise等待異步接口執(zhí)行完畢再進行下步操作的相關資料,需要的朋友可以參考下
    2023-12-12
  • vue3自定義指令看完這篇就入門了

    vue3自定義指令看完這篇就入門了

    不同于vue2不需要被use使用,vue3的機制是你的指令必須要被注冊成方法的,這樣你才能全局使用到自定義指令,下面這篇文章主要給大家介紹了關于vue3自定義指令的相關資料,需要的朋友可以參考下
    2022-11-11
  • Vuex中Store的簡單實現(xiàn)

    Vuex中Store的簡單實現(xiàn)

    這篇文章主要介紹了Vuex中Store的簡單實現(xiàn),為了在 Vue 組件中訪問 this.$store property,你需要為 Vue 實例提供創(chuàng)建好的 store,Vuex 提供了一個從根組件向所有子組件,以 store 選項的方式 注入 該 store 的機制,需要的朋友可以參考下
    2023-11-11
  • Vue3使用vue-office插件實現(xiàn)word預覽功能

    Vue3使用vue-office插件實現(xiàn)word預覽功能

    vue-office是一個支持多種文件(docx、.xlsx、pdf)預覽的vue組件庫,支持vue2和vue3,這篇文章主要介紹了Vue3使用vue-office插件實現(xiàn)word預覽功能,需要的朋友可以參考下
    2024-04-04
  • vue中使用Echarts?map圖實現(xiàn)下鉆至縣級的思路詳解

    vue中使用Echarts?map圖實現(xiàn)下鉆至縣級的思路詳解

    這篇文章主要介紹了vue中使用Echarts?map圖實現(xiàn)下鉆至縣級,需要注意的是,因為我是直接從?vue-cli2?直接跳到?vue-cli4?,還奇怪怎么讀取不到JSON,查找后才知道?vue-cli3?往后的項目基礎架構對比舊版本有些區(qū)別,感興趣的朋友跟隨小編一起看看吧
    2022-01-01
  • 淺談vue項目,訪問路徑#號的問題

    淺談vue項目,訪問路徑#號的問題

    這篇文章主要介紹了淺談vue項目,訪問路徑#號的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08

最新評論

绥滨县| 江北区| 阳曲县| 安乡县| 中卫市| 镇平县| 全州县| 江油市| 沈丘县| 东莞市| 浦北县| 双流县| 越西县| 城口县| 汕尾市| 政和县| 石台县| 汤原县| 左云县| 云龙县| 宝兴县| 栾川县| 洞头县| 吴忠市| 望江县| 凉城县| 察哈| 通渭县| 太白县| 罗山县| 扎鲁特旗| 五常市| 忻州市| 衡东县| 宝坻区| 宜宾市| 大城县| 宜黄县| 辽宁省| 茶陵县| 惠水县|