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

Implementierung der Nginx-Flusskontrolle und Zugriffskontrolle

Nginx-Verkehrskontrolle Die Ratenbegrenzung ist e...

Die Reihenfolge der Ereignisausführung in der Knotenereignisschleife

Inhaltsverzeichnis Ereignisschleife Ereignisschle...

CenterOS7 Installations- und Konfigurationsumgebung jdk1.8 Tutorial

1. Deinstallieren Sie zuerst das mit CenterOS gel...

So konfigurieren Sie die virtuelle Benutzeranmeldung in vsftpd

yum installiere vsftpd [root@localhost usw.]# yum...

mysql-8.0.16 winx64 neuestes Installationstutorial mit Bildern und Text

Ich habe erst vor Kurzem angefangen, mich mit Dat...

Vue-Grundlagen MVVM, Vorlagensyntax und Datenbindung

Inhaltsverzeichnis 1. Vue-Übersicht Offizielle Vu...

Einigen Eigenschaften in CSS geht ein "*" oder "_" voraus.

Einigen Eigenschaften in CSS geht ein "*&quo...

Tutorial zur Verwendung von Hyperlink-Tags in XHTML

Hyperlink, auch „Link“ genannt. Man kann sagen, d...

CSS-Lösung für mehrspaltiges Layout

1. Feste Breite + adaptiv Erwarteter Effekt: fest...

Stellen Sie einen Varnish-Cache-Proxyserver basierend auf Centos7 bereit

1. Lackübersicht 1. Einführung in Varnish Varnish...

Anweisungen zur Verwendung der MySQL-IndexOF-Funktion

Wie unten dargestellt: LOCATE(Teilzeichenfolge,Ze...

So aktivieren Sie die MySQL-Remoteverbindung auf einem Linux-Server

Vorwort Lernen Sie MySQL, um frühere Nicht-MK-Dat...

So erhalten Sie Datums-/Uhrzeitdaten in MySQL, gefolgt von .0

Der Datentyp von MySQL ist datetime. Die in der D...