2017-08-21 1 views
1

Ich verwende window.MediaRecorder, um eine wav Audiodatei aufzunehmen und dann auf S3 hochzuladen. Ich speichere Datenblöcke in einem Array und erstelle danach einen Blob mit ihnen, nachdem die Aufzeichnung beendet ist. Das funktioniert gut und ich habe keine Probleme beim Aufnehmen oder Abspielen der Dateien. Jedoch kann ich nicht für das Leben von mir herausfinden, wie man die Dauer der resultierenden Blob-Datei einstellt.Speichern Sie die Dauer von einem Blob in einem Browser

Immer wenn ich die Datei lokal lade oder sie auf s3 hochlade, gibt es keine Metadaten für die Dauer. Ich speichere die Dauer des Audiomaterials, während der Benutzer aufnimmt, konnte dies jedoch nicht effektiv an die Audiodatei anhängen. Ich habe das Gefühl, dass es eine triviale Lösung geben sollte, aber ich habe nur stundenlang gesucht und kann nichts finden. Es muss möglich sein, also was fehlt mir?

Antwort

0

Wahrscheinlich haben Sie bereits eine Lösung gefunden, aber ich posten es für jeden, der daran interessiert ist zu sehen.

Sie könnten MediaRecorder.onstart und onstop Ereignisse verwenden.

  1. Wenn das onstart-Ereignis von MediaRecorder ausgelöst wird, müssen Sie das aktuelle Datum mit etwas wie Date.now() abrufen.
  2. Wenn onstop-Ereignis ausgelöst wird, erhalten Sie auch das aktuelle Datum.
  3. Sie müssen diese beiden Daten abziehen, um die Dauer des aufgenommenen Audiomaterials zu erhalten.

Referenzen:

+0

By the way, ich bin nicht sehr sicher, dass .wav-Dateien standardmäßig in Firefox und Chrome unterstützt werden (bin mir nicht sicher über andere). Firefox könnte .ogg-Dateien und Chrome .webm-Dateien aufnehmen. Ich hoffe es hilft. – cr1ng3

Verwandte Themen