Ergebnis: Der Hauptteil besteht darin, die Codelogik zu implementieren, und die spezifische Seitenstruktur wird nicht einzeln eingeführt. Vue-Teil: cnpm installiere Recorderx --save oder npm installiere Recorderx --save Eingeführt in einer bestimmten Komponente <Skript> importiere Axios von „Axios“; importieren { Toast } von "vant"; importiere Recorderx, { ENCODE_TYPE } von "recorderx"; const rc = neuer Recorderx(); Standard exportieren { Daten(){ zurückkehren { Startzeit: null, Endzeit: null } }, Methoden:{ //Stimme aufnehmen recordingVoice() { // das.news_img = !das.news_img rc.start() .then(() => { this.starttime = neues Datum(); }) .catch(Fehler => { alert("Mikrofon konnte nicht abgerufen werden"); }); }, //Stimme asynchron senden sendVoice() { rc.pause(); this.endtime = neues Datum(); let wav = rc.getRecord({ encodeTo: ENCODE_TYPE.WAV, komprimierbar: wahr }); Lassen Sie voiceTime = Math.ceil((this.endtime - this.starttime) / 1000); const formData = new FormData(); formData.append("chatVoice", wav, Date.parse(neues Datum()) + ".wav"); formData.append("Sprachzeit", Sprachzeit); let-Header = { Überschriften: { "Inhaltstyp": "multipart/Formulardaten" } }; Achsen .post("/api/uploadChatVoice", Formulardaten, Header) .then(res => { //Konsole.log(res) wenn (res.data.status === 2) { rc.clear(); let chatVoiceMsg = res.data.chatVoiceMsg; } } }); }, //Audio abspielen playChatVoice(audio) { sei audioUrl = audio; wenn(audioUrl){ let audioExample = neues Audio(); audioExample.src = audioUrl; //Die Audioadresse, die Sie abspielen möchten audioExample.play(); }anders{ Toast('Sprachadresse wurde zerstört'); } }, } }; </Skript> Knotenteil: cnpm installiere Multiparty --save const express = erfordern('express'); const router = express.Router(); const multiparty = erfordern('multiparty'); const NET_URL = "http://127.0.0.1:3000/"; router.post('/uploadChatVoice', (req, res, next) => { let form = neues Multiparty.Form(); form.uploadDir = "chatVoiceUpload"; form.parse(req, (err, Felder, Dateien) => { console.log(Dateien, Felder) let chatVoiceUrl = NET_URL + files.chatVoice[0].path.replace(/\\/g, "/"); let chatVoiceTime = Felder.voiceTime[0] console.log(chatVoiceUrl) wenn (chatVoiceUrl) { res.json({ Status: 2, chatVoiceMsg: { chatVoiceTime, chatVoiceUrl, } }) } anders { res.json({ Status: 1, chatVoiceMsg: { chatVoiceTime: "", chatVoiceUrl: "" } }) } //console.log(Dateien) }) }) Definieren Sie in app.js den Sprachdateipfad app.use('/chatVoiceUpload', express.static('chatVoiceUpload')); Dies ist das Ende dieses Artikels über die Realisierung von Audioaufzeichnungs- und -wiedergabefunktionen durch Vue+node. Weitere relevante Inhalte zu Vue-Audioaufzeichnung und -wiedergabe finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Konfigurationsmethode für das Fenster der kostenlosen Installationsversion von MySQL 5.7.18
>>: Beispielcode zum Bereitstellen eines Spring-Boot-Projekts mit Docker
Nginx-Verkehrskontrolle Die Ratenbegrenzung ist e...
Inhaltsverzeichnis Ereignisschleife Ereignisschle...
body{font-size:12px; font-family:"Schriftart...
1. Deinstallieren Sie zuerst das mit CenterOS gel...
yum installiere vsftpd [root@localhost usw.]# yum...
Ich habe erst vor Kurzem angefangen, mich mit Dat...
Inhaltsverzeichnis 1. Vue-Übersicht Offizielle Vu...
Einigen Eigenschaften in CSS geht ein "*&quo...
Hyperlink, auch „Link“ genannt. Man kann sagen, d...
1. Feste Breite + adaptiv Erwarteter Effekt: fest...
1. Lackübersicht 1. Einführung in Varnish Varnish...
Wie unten dargestellt: LOCATE(Teilzeichenfolge,Ze...
1. Big Data und Hadoop Um Big Data zu studieren u...
Vorwort Lernen Sie MySQL, um frühere Nicht-MK-Dat...
Der Datentyp von MySQL ist datetime. Die in der D...