Contrôle du volume et de la balance d’un son

Contrôler le volume et la balance d'un son en ActionScript 3 (AS3)

Grâce à la classe SoundTransform, nous allons pouvoir contrôler le son au niveau du volume et de la balance notamment.
Nous utilisons ici deux boutons pour régler un volume faible et une balance gauche. Nous stockons les propriétés actuelles du canal dans l'objet SoundTransform puis nous indiquons la nouvelle valeur du volume ou de la balance. Et enfin, nous appliquons ces transformations grâce à la propriété soundTransform de l'objet SoundChannel.

Actionscript:
  1. // création du conteneur du son
  2. var conteneurSon:Sound = new Sound();
  3. // url du fichier mp3
  4. var fichierMP3:URLRequest = new URLRequest("sons/monSon.mp3");
  5. // Objet permettant de contrôler le son
  6. var canal:SoundChannel = new SoundChannel();
  7. // Objet permettant de réaliser les modifications du son
  8. var controle:SoundTransform;
  9. // chargement du mp3 dans le conteneur
  10. conteneurSon.load(fichierMP3);
  11. // Lecture du son et stockage dans le canal
  12. canal = conteneurSon.play();
  13. // Bouton de volume
  14. var volumeFaible:SimpleButton = new SimpleButton();
  15. var normal:TextField = new TextField();
  16. var survol:TextField = new TextField();
  17. var clic:TextField = new TextField();
  18. normal.text = survol.text = clic.text = "Volume faible";
  19. survol.textColor = 0xFF0000;
  20. clic.textColor = 0x0000FF;
  21. with(volumeFaible)
  22. {
  23.     upState = normal;
  24.     overState = survol;
  25.     downState = clic;
  26.     hitTestState = normal;
  27.     x = 50;
  28.     y = 20;
  29. }
  30. // Clic sur le volumeFaible
  31. function clicVolFaible(evt:MouseEvent):void
  32. {
  33.     // On stocke les propriétés du canal dans un objet SoundTransform
  34.     controle = canal.soundTransform;
  35.     // Le volume peut être réglé entre 0 (faible) et 1 (fort)
  36.     controle.volume = 0.3;
  37.     // On applique le nouveau volume au canal
  38.     canal.soundTransform = controle;
  39. }
  40. // Evénement click du bouton est défini
  41. volumeFaible.addEventListener(MouseEvent.CLICK, clicVolFaible);
  42. // Le bouton est affiché
  43. this.addChild(volumeFaible);
  44. // Balance à gauche
  45. var balanceGauche:SimpleButton = new SimpleButton();
  46. var normal2:TextField = new TextField();
  47. var survol2:TextField = new TextField();
  48. var clic2:TextField = new TextField();
  49. normal2.text = survol2.text = clic2.text = "Enceinte gauche";
  50. survol2.textColor = 0xFF0000;
  51. clic2.textColor = 0x0000FF;
  52. with(balanceGauche)
  53. {
  54.     upState = normal2;
  55.     overState = survol2;
  56.     downState = clic2;
  57.     hitTestState = normal2;
  58.     x = 150;
  59.     y = 20;
  60. }
  61. // Clic sur le volumeMoyen
  62. function balGauche(evt:MouseEvent):void
  63. {
  64.     // On stocke les propriétés du canal dans un objet SoundTransform
  65.     controle = canal.soundTransform;
  66.     // La balance peut être réglé entre -1 (gauche) et 1 (droite)
  67.     controle.pan = -1;
  68.     // On applique la nouvelle balance au canal
  69.     canal.soundTransform = controle;
  70. }
  71. // Evénement click du bouton est défini
  72. balanceGauche.addEventListener(MouseEvent.CLICK, balGauche);
  73. // Le bouton est affiché
  74. this.addChild(balanceGauche);

;)