Accès à Web Audio API et flux audio pratiques
Comprendre l'accès à Web Audio API, les limites des autorisations et les flux de lecture, d'analyse, d'enregistrement et de repli.
Vous voulez la documentation structurée pour Empreinte ?
Cet article fait partie de la bibliothèque éditoriale. Pour les étapes de configuration, la référence et les mises à jour continues, passez directement à la section docs.
Web Audio API permet à une page de créer, router, analyser et restituer du son. Elle sert aux éditeurs musicaux, jeux, réunions, visualiseurs, fonctions d’accessibilité et lecteurs. L’API n’accorde pas à elle seule un microphone, un haut-parleur ni une archive d’enregistrements. Le navigateur décide séparément de ces capacités, avec des limites distinctes pour la sécurité et le contrôle de la personne.
Un flux fiable distingue quatre questions : quel son la personne veut-elle entendre, une entrée de l’appareil est-elle nécessaire, quel traitement est requis et le résultat sera-t-il enregistré ou envoyé ailleurs ? La lecture générée ne demande généralement pas d’autorisation matérielle. La capture du microphone exige habituellement une décision explicite pour getUserMedia(). Un enregistrement ou une analyse est une donnée de l’application et ne doit être conservé ou téléversé qu’après un choix compréhensible.
Les usages normaux de Web Audio ont des limites d’accès, des commandes accessibles, un traitement local et une récupération lorsqu’un contexte ou une entrée manque. La collecte d’empreintes audio et le contournement des autorisations ne font pas partie d’un flux responsable. Voir le résumé des empreintes audio et le guide de confidentialité entre surfaces.
Choisir le bon contexte audio
AudioContext représente un graphe audio en temps réel. Ses nœuds peuvent produire un ton, décoder une ressource, régler le gain, filtrer, analyser un flux et l’envoyer vers une sortie. Il convient à un synthétiseur, un jeu ou un effet lié à une action. La page doit offrir des commandes visibles pour démarrer, mettre en pause et arrêter.
OfflineAudioContext restitue un graphe dans un AudioBuffer sans l’envoyer aux haut-parleurs. Il est utile pour préparer un export ou un montage, mais ne remplace pas le consentement au microphone et ne transforme pas un enregistrement distant en donnée locale. Expliquez ce que représente le tampon et laissez la personne choisir de l’enregistrer ou de le partager.
La spécification W3C définit nœuds, connexions, canaux et planification ; MDN documente les interfaces. Le support et la politique de lecture automatique varient. Gérez un contexte suspendu, un nœud absent, un décodage échoué ou une sortie indisponible. Ne garantissez pas que chaque navigateur accepte le même nœud ou la même fréquence d’échantillonnage.
Démarrer la lecture avec un contrôle clair
Le navigateur peut exiger un geste avant toute sortie audible. Présentez un bouton explicite et appelez resume() dans cette action si nécessaire. Indiquez si le contexte a démarré, reste suspendu ou demande une nouvelle action. Volume, silence, pause et arrêt doivent avoir des noms accessibles et ne pas dépendre d’un raccourci clavier.
Lire un son n’est pas l’enregistrer. Décoder un fichier, produire un ton ou relier un élément média au graphe n’accorde pas l’accès au microphone. Si celui-ci est requis, expliquez le motif avant l’invite et affichez un état persistant pendant la capture ; la personne doit pouvoir arrêter sans fermer l’onglet.
Demander une entrée seulement si elle est nécessaire
La capture commence généralement avec navigator.mediaDevices.getUserMedia({ audio: ... }). Elle peut être refusée par la personne, par un document non autorisé, par l’absence d’appareil ou par une contrainte impossible. Traitez le refus comme une branche normale et gardez le mode sans enregistrement utilisable.
Dites « utiliser votre microphone pour pratiquer la justesse » ou « enregistrer une note vocale pour ce brouillon ». Ne demandez pas la vidéo si seul l’audio est nécessaire et ne demandez pas le microphone pour débloquer une lecture. Affichez une indication claire et des commandes d’arrêt et de silence. Précisez si l’audio reste dans l’onglet, est conservé localement ou envoyé à un service. Un téléversement facultatif doit être une action distincte avec une destination compréhensible.
Une autorisation peut être révoquée et un appareil peut disparaître. L’interface doit proposer une nouvelle tentative ou une solution locale, sans boucle d’invites ni message accusant l’appareil.
Analyser, enregistrer et exporter
AnalyserNode peut alimenter un indicateur, un accordeur ou une aide d’accessibilité. Gardez seulement le tampon temporaire nécessaire. Pour l’enregistrement, utilisez une solution compatible telle que MediaRecorder pour un flux média. Indiquez le début, la fin, le format et le caractère local ou distant du fichier ; permettez l’annulation ou la suppression avant transfert ou stockage durable.
Les canaux, fréquences et codecs varient. Lisez la configuration réelle au lieu de promettre un matériel universel. Si un format manque, proposez une solution documentée ou un téléchargement qui conserve le contenu ; ne produisez jamais silencieusement un fichier vide. Distinguez l’original du résultat traité et séparez l’aperçu de l’exportation.
Définir les limites de confidentialité de l’audio
Le traitement peut rester local. Si un service est nécessaire, envoyez le minimum et expliquez pourquoi. Un mémo vocal, une transcription et l’audio brut ont des besoins distincts. Le téléversement doit être un choix explicite. L’état du contexte, la fréquence et les valeurs d’analyse ne prouvent pas une identité ; les journaux doivent décrire le résultat de la tâche, pas un profil d’appareil.
Accessibilité de l’audio
Les commandes exigent des noms accessibles, un focus visible et des états annoncés. Une forme d’onde complète les boutons de lecture, pause, recherche, silence et enregistrement ; elle ne les remplace pas. Les instructions importantes doivent aussi exister en texte, sous-titres ou signaux visuels. Commencez à un volume raisonnable, évitez les boucles surprises et offrez un silence rapide.
Récupération après un blocage audio
Lorsqu’un format manque, proposez une solution documentée et conservez le travail récupérable.
Les tests de permissions, d’appareils et d’accessibilité doivent reproduire les décisions visibles pour la personne.
Après un échec de lecture, proposez un élément média ou un téléchargement. Après un refus du microphone, gardez l’import d’un fichier ou un mode sans capture. Une mesure indisponible ne doit pas être présentée comme actuelle.
Arrêtez la piste d’entrée à la fin de l’enregistrement et libérez les tampons temporaires inutiles.
Une page ouverte longtemps ne doit pas garder une boucle d’analyse active sans raison.
Un état visible peut indiquer que la capture est terminée alors que la lecture reste disponible.
Au retour dans un brouillon, restaurez le fichier choisi mais demandez de nouveau le démarrage de la capture.
Une préférence de volume n’est pas une autorisation de microphone.
Annuler un export ne doit pas supprimer l’original encore présent dans l’onglet.
Le message d’erreur doit nommer l’action concernée et proposer une récupération précise.
Après le retrait d’un appareil, proposez un autre fichier ou un mode sans enregistrement.
Une nouvelle demande d’autorisation doit partir d’une action claire, jamais d’une boucle automatique.
Un composant intégré doit expliquer ses limites de permission et la destination des données.
Des états documentés aident le support à distinguer relancer, importer et continuer la modification.
Les tests clavier et lecteur d’écran doivent couvrir les mêmes états que les tests visuels.
Un aperçu local ne doit pas laisser croire qu’une copie distante existe déjà.
Un service peut conserver un export sans téléverser de nouvel audio.
Séparer ces états rend la limite entre traitement et transfert compréhensible.
Sources publiques
Articles Connexes
Faites passer BotBrowser de la recherche à la production
Utilisez ces guides pour comprendre le modèle, puis passez à la validation multi-plateforme, aux contextes isolés et au déploiement navigateur prêt pour l'échelle.