In den letzten Tagen habe ich versucht, Javascript zu verwenden, um den Audio-Stream aufzuzeichnen. Ich habe festgestellt, dass es keinen Beispielcode gibt, der funktioniert.
Unterstützt ein Browser?
Hier ist mein Code
%Vor%Sie könnten diese Seite überprüfen: Ссылка
Es speichert das Audio in einer Datei (.wav) auf der Client-Seite.
getUserMedia haben Sie Zugriff auf das Gerät, aber Sie können das Audio aufzeichnen. Um dies zu tun, sollten Sie dem Gerät "zuhören" und einen Puffer für die Daten erstellen. Wenn Sie dann aufhören, das Gerät zu hören, können Sie diese Daten als WAV-Datei (oder jedes andere Format) formatieren. Nach dem Formatieren können Sie es auf Ihren Server, S3, hochladen oder direkt im Browser abspielen.
Um die Daten auf eine Weise zu hören, die für die Erstellung Ihres Puffers nützlich ist, benötigen Sie einen ScriptProcessorNode. Ein ScriptProcessorNode befindet sich im Grunde zwischen dem Eingang (Mikrofon) und dem Ausgang (Lautsprecher) und gibt Ihnen die Möglichkeit, die Audiodaten während des Streams zu manipulieren. Leider ist die Implementierung nicht einfach.
Sie benötigen:
Alles zusammenfügen:
%Vor%Anstatt all das selbst aufzubauen, schlage ich vor, dass Sie den AudioRecorder -Code verwenden, was großartig ist. Es behandelt auch das Schreiben des Puffers in eine WAV-Datei. Hier ist eine Demo .
Hier ist eine weitere große Ressource .
für Browser, die MediaRecorder API unterstützen, verwenden Sie sie.
Für ältere Browser, die die MediaRecorder-API nicht unterstützen, gibt es drei Möglichkeiten, dies zu tun
wav
mp3
opus packets
(kann als wav
, mp3
oder ogg
ausgegeben werden)
node.js
). Dies ist derzeit nicht möglich, ohne die Daten an die Serverseite zu senden. Dies würde jedoch bald im Browser möglich sein, wenn sie den MediaRecorder-Arbeitsentwurf unterstützen.
Tags und Links javascript html5 audio webrtc getusermedia