vue項目手機錄音

手機實現錄音功能,安卓和蘋果都可。功能,點擊開始錄制錄音后,隨時可以停止錄音,如果不點擊停止最多錄制15秒。

在這里插入圖片描述
在這里插入圖片描述

頁面結構

<!--音頻-->
<div class="audio-box"><audio id="audioPlayer"controlscontrolslist="noplaybackrate nodownload"preload="auto"></audio><i @click="deleteAudio" class="el-icon-delete"></i>
</div><!--錄制按鈕-->
<div class="out-ring"><!--未錄制狀態--><div @click="startRecording" v-show="!isRecording" class="in-ring"><img src="@/assets/img/audio.png" alt="" style="height:48px;"></div><!--錄制中--><div v-show="isRecording" @click="stopClick" class="in-ring"><div class="red-square"></div></div>
</div>
<!--錄制提示-->
<div v-show="!isRecording" class="tip">點擊錄制音頻</div>

函數

/*** 開始錄音*/
async startRecording() {let that = thistry {const stream = await navigator.mediaDevices.getUserMedia({audio: true});that.mediaRecorder = new MediaRecorder(stream);that.mediaRecorder.ondataavailable = e => {that.audioChunks.push(e.data);};that.mediaRecorder.start();that.isRecording = true;that.timer = setTimeout(that.stopRecording, 15000);} catch (err) {that.$toast('錄音失敗')}
},/*** 結束錄音*/
stopRecording() {this.mediaRecorder.stop();this.mediaRecorder.onstop = () => {let audioBlob = new Blob(this.audioChunks, {'type': 'audio/mp3; codecs=opus'});let soundUrl = URL.createObjectURL(audioBlob);//生成file對象let file = new File([audioBlob], 'yinpin.mp3', {type: 'application/json',lastModified: Date.now()})//頁面播放錄音this.showAudio(soundUrl)this.$store.commit('SET_AUDIO_FILE', file)this.$store.commit('SET_AUDIO_URL', soundUrl)// 重置音頻塊數組以備下次錄音this.audioChunks = [];};this.isRecording = false;this.$toast('錄音結束')
},/*** 停止錄音點擊事件*/
stopClick() {clearTimeout(this.timer);this.timer = nullthis.stopRecording()
},/*** 展示音頻*/
showAudio(Url) {let audio = document.getElementById('audioPlayer');audio.src = Url;audio.load();
},/*** 刪除音頻*/
deleteAudio() {this.showAudio('');this.audioChunks = [];this.$store.commit('SET_AUDIO_FILE', null)this.$store.commit('SET_AUDIO_URL', null)
}

注意,在項目尚未發布時,也就是前端在手機上測試錄音功能時,會出現navigator.mediaDevices未定義的情況,可以百度搜索,有三種解決辦法。我的解決辦法是:使用內網穿透,生成一個公網ip,就可以解決這個問題。具體教程可以參考這邊文章:https://blog.csdn.net/qq_42978230/article/details/113618902。使用時,注意將本地地址改為localhost,文章中未提及這個。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/37586.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/37586.shtml
英文地址,請注明出處:http://en.pswp.cn/web/37586.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

修改element-ui日期下拉框datetimePicker的背景色樣式

如圖&#xff1a; 1、修改背景色 .el-date-picker.has-sidebar.has-time { background: #04308D; color: #fff; border: 1px solid #326AFF } .el-date-picker__header-label { color: #ffffff; } .el-date-table th { color: #fff; } .el-icon-d-arrow-left:before { color: …

從零搭建Java酒店預訂系統:實戰指南_01

項目介紹 一、 項目概述 項目背景: 模擬真實酒店預訂流程,實現核心功能角色設定: 顧客、前臺、后勤管理(可選:管理員)技術選型: Java + Spring Boot + 數據庫(MySQL)+ 前端框架(Vue.js/React等)二、 需求分析與功能設計 功能模塊劃分: 用戶模塊:用戶注冊、登錄、…

Postgres14.4(Docker安裝)

Postgres14.4&#xff08;Docker安裝&#xff09; 一&#xff0c;Docker拉取鏡像 docker pull postgres:14.4 #檢查鏡像是否拉取成功 docker images | grep postgres二&#xff0c;新建掛載目錄&#xff0c;并運行容器 mkdir -p /data/postgre/data chmod 777 /data/postgre…

AQS同步隊列、條件隊列源碼解析

AQS詳解 前言AQS幾個重要的內部屬性字段內部類 Node同步隊列 | 阻塞隊列等待隊列 | 條件隊列 重要方法執行鏈同步隊列的獲取、阻塞、喚醒加鎖代碼流程解鎖 條件隊列的獲取、阻塞、喚醒大體流程 調用await()方法1. 將節點加入到條件隊列2. 完全釋放獨占鎖3. 等待進入阻塞隊列4. …

【Python】探索 Pandas 中的 where 方法:條件篩選的利器

那年夏天我和你躲在 這一大片寧靜的海 直到后來我們都還在 對這個世界充滿期待 今年冬天你已經不在 我的心空出了一塊 很高興遇見你 讓我終究明白 回憶比真實精彩 &#x1f3b5; 王心凌《那年夏天寧靜的海》 在數據分析中&#xff0c;Pandas 是一個強大且…

小程序安卓手機點擊uni-data-select 下拉框選擇器會出現藍色陰影

解決方法&#xff1a;在導入的包中找到uni-data-select.vue&#xff0c;接著找到.uni-stat__select樣式&#xff0c;把cursor: pointer去掉。 如果出現穿透問題&#xff0c;uni-select__selector的z-index加高&#xff0c;默認是2。

數據庫MyBatis傳遞數組或集合

應用場景 假設你有兩個表&#xff0c;一個是商品信息表&#xff08;表1&#xff0c;例如商品類別信息&#xff09;&#xff0c;另一個是庫存信息表&#xff08;表2&#xff0c;記錄每種商品的庫存數量&#xff09;。你想知道特定幾個商品類別 &#xff08;通過其ID標識&#xf…

其他OpenAI API和功能

文章目錄 嵌入嵌入如何為ML模型翻譯語言內容審核模型Whisper 和 DALL.E除了文本補全功能,OpenAl用戶還可以使用其他一些功能但如果你想深入了解所有API那么請查看OpenAl的APl reference 頁面。 嵌入 由于模型依賴數學函數,因此它需要數值輸入來處理信息。然而,許多元素(如…

zdppy_api+vue3+antd開發前后端分離的預加載卡片實戰案例

后端代碼 import api import upload import timesave_dir "uploads"async def rand_content(request):key api.req.get_query(request, "key")time.sleep(0.3)return api.resp.success(f"{key} " * 100)app api.Api(routes[api.resp.get(&qu…

UnityUGUI之二 CameraTargetTexture

在我們需要將3D物體呈現在2D視角時就可以使用TargetTexture&#xff0c;若想只顯示3D物體則需改變背景顏色&#xff0c;并且得再增加一個相機

智慧城市新利器:免費可視化工具助力高效管理

在智慧城市的建設中&#xff0c;實現高效的統籌管理是至關重要的。通過免費可視化工具“山海鯨可視化”&#xff0c;這一目標可以輕松達成。山海鯨可視化是一款免費可視化工具&#xff0c;具備二三維融合、易用性、安全性以及高質量畫面渲染等特色&#xff0c;是制作智慧城市可…

什么是數據安全?

網絡中的數據安全是一種無價的資產&#xff0c;數據信息在人們的日常生活中無處不在&#xff0c;但同時也面臨著前所未有的安全挑戰&#xff0c;那什么是數據安全呢&#xff1f;數據安全有著哪些特點呢&#xff1f; 數據安全主要就是指保護數據不會受到未經過授權的IP進行訪問、…

數據結構—選擇題

01-數據結構—判斷題 71.在數據結構中&#xff0c;從邏輯上可以把數據結構分為&#xff08; &#xff09;。 A. 動態結構和靜態結構 B. 緊湊結構和非緊湊結構 C. 線性結構和非線性結構 D. 內部結構和外部結構 答案&#xff1a;C 72.當輸入規模為n時&#xff0c;下列算法…

Elasticsearch及其相關工具的安裝

Elasticsearch及其相關工具的安裝 傳送門&#xff1a;https://pan.baidu.com/s/1d83Ak4kHOJHIgCC7Hhjikw 提取碼&#xff1a;ABCE 推薦使用8.12.12版本&#xff0c;8.14.1沒有找到ik分詞器 Elasticsearch 是什么 Elasticsearch檢查ES&#xff0c;是一個開源的分布式搜索和存…

AI推介-信息抽取(information extraction,NER)論文速覽(arXiv方向):2023.08.01-2024.10.15

文章目錄&#xff5e; 1.Reconstructing Materials Tetrahedron: Challenges in Materials Information Extraction2.Utilizing Contextual Clues and Role Correlations for Enhancing Document-level Event Argument Extraction3.Benchmarking Large Language Models with Au…

如何獲得更高質量的回答-chatgpt

在與技術助手如ChatGPT進行交互時&#xff0c;提問的方式直接影響到你獲得的答案質量。以下是幾個關鍵的提問技巧&#xff0c;可以幫助你在與ChatGPT的互動中獲得更有效的回答&#xff1a; 1. 清晰明了的問題 技巧&#xff1a;確保問題清晰明了&#xff0c;避免含糊不清或模糊的…

短信群發平臺:驗證碼在不同行業的應用

1、手機號碼真實性驗證&#xff1a;用戶注冊會員時&#xff0c;為了獲取用戶真實的手機號碼&#xff0c;需要通過手機短信驗證功能&#xff0c;確保用戶填寫的手機號碼的真實性。 2、用戶找回密碼&#xff1a;用戶有可能會忘記掉自己的密碼甚至用戶名&#xff0c;如果該會員已…

Python自定義線程池,這么高效,是不是開了掛?

目錄 1、線程池基礎 ??? 1.1 線程池概念與優勢 1.2 Python標準庫concurrent.futures簡介 示例代碼:使用ThreadPoolExecutor執行簡單任務 2、利用ThreadPoolExecutor定制 ??? 2.1 創建自定義線程池類 示例代碼:自定義ThreadPoolExecutor子類 2.2 設置線程池參數與…

四.iOS核心動畫 - 圖層的視覺效果

引言 在前幾篇博客中我們討論了圖層的frame,bounds,position以及讓圖層加載圖片。但是圖層事實上不僅可以顯示圖片&#xff0c;或者規則的矩形塊&#xff0c;它還有一系列內建的特性來創建美麗優雅的頁面元素。在這篇博客中我們就來探索一下CALayer的視覺效果。 視覺效果 圖…

java筆記(29)——動態代理(工廠模式)【示例】

文章目錄 動態代理&#xff08;工廠模式&#xff09;接口類實體類代理類測試類 動態代理&#xff08;工廠模式&#xff09; 接口類 package com.itchen.proxytest;public interface Star {public abstract String sing(String name);public abstract void dance(); }實體類 …