Vue + node realisiert Audioaufzeichnungs- und -wiedergabefunktion

Vue + node realisiert Audioaufzeichnungs- und -wiedergabefunktion

Ergebnis:

Bildbeschreibung hier einfügen

Der Hauptteil besteht darin, die Codelogik zu implementieren, und die spezifische Seitenstruktur wird nicht einzeln eingeführt.

Vue-Teil:
Installieren Sie recorderx

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:
Hier verwende ich das Express-Framework, um den Hintergrund zu erstellen. Der spezifische Anforderungscode zum Abrufen des Frontends lautet wie folgt: Installieren Sie multiparty

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')); 

Bildbeschreibung hier einfügen

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:
  • Die Vue-Karussellkomponente implementiert $children und $parent und verfügt über ein nützliches GIF-Aufzeichnungstool
  • Vue-Methode zum Aufzeichnen von Videos und Komprimieren von Videodateien
  • So lösen Sie das Problem der automatischen Audiowiedergabe und MP3-Sprachverpackung im Chrome-Browser online in Vue
  • Lösen Sie das Problem des Wechselns von Vue-Projektkomponenten und der automatischen Audiowiedergabe unter iOS WeChat

<<:  Konfigurationsmethode für das Fenster der kostenlosen Installationsversion von MySQL 5.7.18

>>:  Beispielcode zum Bereitstellen eines Spring-Boot-Projekts mit Docker

Artikel empfehlen

Linux verwendet den Binärmodus zur Installation von MySQL

In diesem Artikel werden die einzelnen Schritte z...

...

Eine kurze Analyse der Verwendung von USING und HAVING in MySQL

Dieser Artikel veranschaulicht anhand von Beispie...

So legen Sie den Fokus auf HTML-Elemente fest

Code kopieren Der Code lautet wie folgt: <Körp...

Beispielcode für die Konvertierung von MySQL-Zeilen und -Spalten

1. Nachfrage Wir haben drei Tabellen. Wir müssen ...

Semantisierung von HTML-Tags (einschließlich H5)

einführen HTML stellt die kontextuelle Struktur u...

Lebenszyklus und Ausführungsreihenfolge von React-Class-Komponenten

1. Zwei Möglichkeiten zum Definieren von Reaktion...

Detaillierter Prozess der Installation von Jenkins-2.249.3-1.1 mit Docker

Inhaltsverzeichnis 1. Docker installieren 2. Zieh...