AudioElementMixer
          class
        
        
class AudioElementMixer {
 List<AudioElementSoundChannel> _soundChannels = new List<AudioElementSoundChannel>();
 num _mixerVolume = 1.0;
 applySoundTransform(SoundTransform value) {
   _mixerVolume = value.volume;
   _soundChannels.forEach(_updateSoundChannel);
 }
 //-----------------------------------------------------------------------------------------------
 _addSoundChannel(AudioElementSoundChannel audioElementSoundChannel) {
   _soundChannels.add(audioElementSoundChannel);
 }
 _removeSoundChannel(AudioElementSoundChannel audioElementSoundChannel) {
   _soundChannels.remove(audioElementSoundChannel);
 }
 _updateSoundChannel(AudioElementSoundChannel audioElementSoundChannel) {
   var audio = audioElementSoundChannel._audio;
   var channelVolume = audioElementSoundChannel._soundTransform.volume;
   if (audio != null) {
     audio.volume = _mixerVolume * channelVolume;
   }
 }
}
 
Methods
applySoundTransform(SoundTransform value) {
 _mixerVolume = value.volume;
 _soundChannels.forEach(_updateSoundChannel);
}