Dart DocumentationstagexlWebAudioApiSoundChannel

WebAudioApiSoundChannel class

class WebAudioApiSoundChannel extends SoundChannel {

 SoundTransform _soundTransform;
 bool _loop;

 AudioBufferSourceNode _sourceNode;
 WebAudioApiSound _webAudioApiSound;
 WebAudioApiMixer _webAudioApiMixer;

 WebAudioApiSoundChannel(WebAudioApiSound webAudioApiSound, bool loop, SoundTransform soundTransform) {

   _webAudioApiSound = webAudioApiSound;
   _soundTransform = (soundTransform != null) ? soundTransform : new SoundTransform();
   _loop = loop;

   _webAudioApiMixer = new WebAudioApiMixer(SoundMixer._webAudioApiMixer.inputNode);
   _webAudioApiMixer.applySoundTransform(_soundTransform);

   _sourceNode = WebAudioApiMixer.audioContext.createBufferSource();
   _sourceNode.buffer = _webAudioApiSound._buffer;
   _sourceNode.loop = loop;
   _sourceNode.connectNode(_webAudioApiMixer.inputNode);
   _sourceNode.start(0);
 }

 //-------------------------------------------------------------------------------------------------

 SoundTransform get soundTransform => _soundTransform;

 void set soundTransform(SoundTransform value) {

   _soundTransform = (soundTransform != null) ? soundTransform : new SoundTransform();
   _webAudioApiMixer.applySoundTransform(value);
 }

 void stop() {

   _sourceNode.stop(0);
 }
}

Extends

EventDispatcher > SoundChannel > WebAudioApiSoundChannel

Constructors

new WebAudioApiSoundChannel(WebAudioApiSound webAudioApiSound, bool loop, SoundTransform soundTransform) #

Creates a new Object instance.

Object instances have no meaningful state, and are only useful through their identity. An Object instance is equal to itself only.

docs inherited from Object
WebAudioApiSoundChannel(WebAudioApiSound webAudioApiSound, bool loop, SoundTransform soundTransform) {

 _webAudioApiSound = webAudioApiSound;
 _soundTransform = (soundTransform != null) ? soundTransform : new SoundTransform();
 _loop = loop;

 _webAudioApiMixer = new WebAudioApiMixer(SoundMixer._webAudioApiMixer.inputNode);
 _webAudioApiMixer.applySoundTransform(_soundTransform);

 _sourceNode = WebAudioApiMixer.audioContext.createBufferSource();
 _sourceNode.buffer = _webAudioApiSound._buffer;
 _sourceNode.loop = loop;
 _sourceNode.connectNode(_webAudioApiMixer.inputNode);
 _sourceNode.start(0);
}

Properties

SoundTransform soundTransform #

SoundTransform get soundTransform => _soundTransform;
void set soundTransform(SoundTransform value) {

 _soundTransform = (soundTransform != null) ? soundTransform : new SoundTransform();
 _webAudioApiMixer.applySoundTransform(value);
}

Methods

StreamSubscription<Event> addEventListener(String eventType, EventListener eventListener, {bool useCapture: false, int priority: 0}) #

inherited from EventDispatcher
StreamSubscription<Event> addEventListener(String eventType, EventListener eventListener, {
 bool useCapture: false, int priority: 0 }) {

 return this.on(eventType)._subscribe(eventListener, useCapture, priority);
}

void dispatchEvent(Event event) #

inherited from EventDispatcher
void dispatchEvent(Event event) {
 _dispatchEventInternal(event, this, EventPhase.AT_TARGET);
}

bool hasEventListener(String eventType) #

inherited from EventDispatcher
bool hasEventListener(String eventType) {

 var eventStreams = _eventStreams;
 if (eventStreams == null) return false;
 var eventStream = eventStreams[eventType];
 if (eventStream == null) return false;

 return eventStream.hasSubscriptions;
}

EventStream<Event> on(String eventType) #

inherited from EventDispatcher
EventStream<Event> on(String eventType) {

 var eventStreams = _eventStreams;
 if (eventStreams == null) {
   eventStreams = new Map<String, EventStream>();
   _eventStreams = eventStreams;
 }

 var eventStream = eventStreams[eventType];
 if (eventStream == null) {
   eventStream = new EventStream._internal(this, eventType);
   eventStreams[eventType] = eventStream;
 }

 return eventStream;
}

void removeEventListener(String eventType, EventListener eventListener, {bool useCapture: false}) #

inherited from EventDispatcher
void removeEventListener(String eventType, EventListener eventListener, {
 bool useCapture: false }) {

 this.on(eventType)._unsubscribe(eventListener, useCapture);
}

void removeEventListeners(String eventType) #

inherited from EventDispatcher
void removeEventListeners(String eventType) {
 this.on(eventType).cancelSubscriptions();
}

void stop() #

void stop() {

 _sourceNode.stop(0);
}