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
Inhaltsverzeichnis 1. Die Beziehung zwischen Redu...
Vorwort Das Miniprogramm verfügt über eine sehr p...
Einzigartige „Über“-Seiten Eine gute Möglichkeit, ...
1. Laden Sie das offizielle MySQL Yum Repository ...
transform: scale(); Skalierung verursacht Jitter ...
Dieser Artikel beschreibt die Schritte zur Instal...
Der Grund liegt darin, dass es nach der Installat...
.NET SDK-Download-Link https://dotnet.microsoft.c...
Inhaltsverzeichnis 1. Ziehen Sie das Bild 2. Erst...
Der wichtigste Schritt bei der Verpacken einer Id...
Inhaltsverzeichnis Einführung Einführung Aggregat...
Vorwort Wenn Sie das Attribut „overflow: scroll“ ...
Vorwort Bei der täglichen Entwicklung oder Wartun...
Konvertieren Sie Code in ein Bild mit html2canvas...
Standardmäßig werden Breite und Höhe der Tabelle ...