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

Detaillierte Erklärung der Beziehung zwischen React und Redux

Inhaltsverzeichnis 1. Die Beziehung zwischen Redu...

Kreatives „Über uns“-Webseitendesign

Einzigartige „Über“-Seiten Eine gute Möglichkeit, ...

Installationstutorial für MySQL 5.7 unter CentOS 7

1. Laden Sie das offizielle MySQL Yum Repository ...

Lösung für das Jitter-Problem beim CSS3-Transformationsübergang

transform: scale(); Skalierung verursacht Jitter ...

VMware Workstation Pro installiert das Win10-Betriebssystem in Reinform

Dieser Artikel beschreibt die Schritte zur Instal...

Installieren Sie .NET 6.0 im CentOS-System mithilfe eines Cloud-Servers

.NET SDK-Download-Link https://dotnet.microsoft.c...

Erstellen eines Redis-Clusters auf Docker

Inhaltsverzeichnis 1. Ziehen Sie das Bild 2. Erst...

MySQL-Datenbank-Grundlagen SQL-Fensterfunktion Beispielanalyse-Tutorial

Inhaltsverzeichnis Einführung Einführung Aggregat...

Detaillierte Erklärung des Overflow-Scrollens zur Lösung des Scroll-Lag-Problems

Vorwort Wenn Sie das Attribut „overflow: scroll“ ...

Zusammenfassung häufiger Probleme und Anwendungskenntnisse in MySQL

Vorwort Bei der täglichen Entwicklung oder Wartun...

So verwenden Sie html2canvas, um HTML-Code in Bilder umzuwandeln

Konvertieren Sie Code in ein Bild mit html2canvas...

Tutorial zu HTML-Tabellen-Tags (3): Breiten- und Höhenattribute WIDTH, HEIGHT

Standardmäßig werden Breite und Höhe der Tabelle ...