Sound abstract class
abstract class Sound {
 Sound() {
   var initEngine = SoundMixer.engine;
 }
 static Future<Sound> load(String url, [SoundLoadOptions soundLoadOptions = null]) {
   switch(SoundMixer.engine) {
     case "WebAudioApi" : return WebAudioApiSound.load(url, soundLoadOptions);
     case "AudioElement": return AudioElementSound.load(url, soundLoadOptions);
     default            : return MockSound.load(url, soundLoadOptions);
   }
 }
 static SoundLoadOptions defaultLoadOptions = new SoundLoadOptions(mp3:true, mp4:true, ogg:true, wav:true);
 //-------------------------------------------------------------------------------------------------
 num get length;
 SoundChannel play([bool loop = false, SoundTransform soundTransform]);
}
Subclasses
AudioElementSound, MockSound, WebAudioApiSound
Static Properties
SoundLoadOptions defaultLoadOptions #
static SoundLoadOptions defaultLoadOptions = new SoundLoadOptions(mp3:true, mp4:true, ogg:true, wav:true)
Static Methods
Future<Sound> load(String url, [SoundLoadOptions soundLoadOptions = null]) #
static Future<Sound> load(String url, [SoundLoadOptions soundLoadOptions = null]) {
 switch(SoundMixer.engine) {
   case "WebAudioApi" : return WebAudioApiSound.load(url, soundLoadOptions);
   case "AudioElement": return AudioElementSound.load(url, soundLoadOptions);
   default            : return MockSound.load(url, soundLoadOptions);
 }
}