Intégrez le son à une première action claire
Un jeu qui suppose que le son a démarré peut afficher une icône indiquant que le son est coupé tout en restant silencieux. Les navigateurs limitent souvent l’audio lancé par un script tant que l’utilisateur n’a pas effectué une action, et une demande de lecture peut être rejetée ou aboutir avec retard. Concevez la première interaction pour enregistrer le choix audio du joueur, puis mettez à jour l’interface selon le résultat réel de la lecture. Le comportement est ainsi prévisible et le joueur n’est pas surpris par un son inattendu.
Testez à la fois un nouveau chargement de page et un retour depuis un autre onglet. Essayez une configuration de navigateur qui bloque la lecture automatique, un système mis en sourdine et une ressource audio lente. Confirmez que le début visuel du jeu n'est pas pris en otage par un effet sonore optionnel et que l'étiquette de contrôle reste véridique si l'audio n'a pas commencé.
Gardez les commentaires et l’état audio alignés
N'assimilez pas un appel réussi à play() à une sortie sonore instantanée. La promesse peut être réglée de manière asynchrone et un navigateur peut demander l'autorisation. Gérez le rejet, exposez une action de nouvelle tentative si cela est utile et ne signalez pas une erreur qui implique que l'ensemble du jeu a échoué lorsque seul le son n'est pas disponible.
Séparez les préférences de l'utilisateur de l'autorisation d'exécution : un choix de sourdine enregistré est l'intention du joueur, tandis que le fait que la lecture soit actuellement autorisée est une condition du navigateur. Testez indépendamment les transitions de sourdine, de réactivation, de pause, de reprise et de scène afin que les effets ne soient pas accidentellement redémarrés à plein volume après un changement d'état.
Questions sur démarrage audio du jeu par navigateur
Puis-je lire automatiquement la musique du jeu après le chargement de la page ?
Ne partez pas du principe que cela fonctionnera. Les règles de lecture automatique peuvent bloquer les médias sonores et Web Audio lancé sans interaction de l’utilisateur. Proposez une action volontaire et gérez les échecs de lecture.
Que doit afficher le bouton son si la lecture est bloquée ?
Affichez un état honnête tel que le son désactivé ou une action pour activer le son, en fonction du résultat que vous avez observé. MDN recommande de répondre à la promesse play() au lieu de supposer que la lecture a commencé.
Pour aller plus loin
Vous avez repéré une information dépassée ? Signaler une correction