Audio-Stream von getUserMedia aufzeichnen

8

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%     
Shih-En Chou 16.08.2012, 01:32
quelle

5 Antworten

4

Sie könnten diese Seite überprüfen: Ссылка

Es speichert das Audio in einer Datei (.wav) auf der Client-Seite.

    
Mikael Holmgren 22.08.2013, 06:58
quelle
23
Mit

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:

  • getUserMedia , um auf das Gerät zuzugreifen
  • AudioContext um einen MediaStreamAudioSourceNode und einen ScriptProcessorNode
  • zu erstellen
  • MediaStreamAudioSourceNode zur Darstellung des Audio-Streams
  • ScriptProcessorNode , um über ein Onaudioprozess-Ereignis auf die Streaming-Audiodaten zuzugreifen. Das Ereignis macht die Kanaldaten verfügbar, mit denen Sie Ihren Puffer erstellen.

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 .

    
jrullmann 08.10.2013 02:34
quelle
4

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

  1. als wav
    • alle clientseitig.
    • unkomprimierte Aufnahme.
    • Quellcode - & gt; Ссылка
  2. als mp3
    • alle clientseitig.
    • komprimierte Aufnahme.
    • Quellcode - & gt; Ссылка
  3. als opus packets (kann als wav , mp3 oder ogg ausgegeben werden)
    • Client- und Servercode ( node.js ).
    • komprimierte Aufnahme.
    • Quellcode - & gt; Ссылка
mido 25.03.2015 05:00
quelle
1

Es gibt einen Fehler, der momentan nur Audio nicht erlaubt. Bitte beachten Sie Ссылка

    
Todd 30.08.2012 08:46
quelle
-1

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.

    
Vidhuran 16.03.2013 17:53
quelle