Comment enregistrer l'audio sur la page Web ( iOS, Android, PC / Mac) - Pas de flash

j'ai une exigence pour permettre à un utilisateur d'enregistrer un fichier audio à l'aide de son micro, mais il a de travailler sans flash car il a besoin de travailler sur iOS (mobile safari, le navigateur Android ou Chrome, et un navigateur moderne sur un PC/Mac.

Existe-t-il une méthode simple et propre HTML5 pour enregistrer l'audio et le poster sur un serveur? Je n'ai pas été en mesure de trouver quoi que ce soit.

22
demandé sur Jim Jones 2013-11-06 19:01:20

3 réponses

vous pouvez utiliser le HTML5 API WebAudio.

une introduction à la capture audio et vidéo Capturer l'audio et la vidéo en HTML5

Une bonne bibliothèque pour enregistrer de l'audio avec des échantillons Enregistreur.js

un échantillon complet et fonctionnel à L'aide d'un enregistreur.js comment enregistrer l'audio en Chrome avec les API HTML5 natives

Autres WebAudio API démos HTML5 Web Audio API Demos and Les bibliothèques

prise en charge des navigateurs puis-je utiliser L'API Audio Web?

concernant l'envoi des données à un autre serveur, en utilisant Recorder.js vous pouvez obtenir le tampon audio, alors vous pouvez utiliser XMLHttpRequest pour poster le tableau ou le blob directement sur le serveur de destination ou encodé sous le nom de base64.

MDN: envoi et réception de données binaires

Html5Rocks:Nouveau truc ins XMLHttpRequest2, l'envoi de données

35
répondu vzamanillo 2013-12-24 11:45:36

professionnellement parlant je dirais que non, il y a des API audio pour HTML5 mais leur implémentation varie selon les navigateurs pour le moment. Si vous faites cela pour une démo technique, alors cela pourrait suffire, mais sinon vous pourriez avoir besoin de revenir à d'autres technologies comme flash et/ou des applications natives pour des résultats plus fiables.

3
répondu Roy 2013-12-24 11:55:55

getUserMedia() est désormais largement supporté sur mobile:

et bureau:

  • Safari 11
  • Chrome
  • Firefox
  • bord 12
  • Opéra

Une fois que la permission webcam/mic est donnée et que les données mic sont activées, vous pouvez:

Voici une démo que j'ai faite (démonstration,source sur GitHub) qui utilise celle de Matt Diamond Enregistreur.js pour enregistrer l'audio (pcm in .WAV files) fonctionnant en Safari sur iOS 11. En cliquant sur Enregistrement, l'utilisateur est invité à autoriser l'accès au microphone:

Recorder.js demo running on iOS 11Clicking Record prompts the user to allow microphone access

0
répondu Octavian Naicu 2018-07-10 18:59:36