AudioLoader class
class AudioLoader extends ResourceLoader<AudioBuffer> { final AudioContext context; AudioLoader(this.context, Iterable<String> urlList) : super(urlList); void _doLoad(String blobUrl) { // Load buffer asynchronously final HttpRequest arrayBufferRequest = new HttpRequest(); arrayBufferRequest.open("GET", blobUrl, true); arrayBufferRequest.responseType = "arraybuffer"; arrayBufferRequest.on.load.add((args) { // Asynchronously decode the audio file data in request.response context.decodeAudioData( arrayBufferRequest.response, (buffer) => _saveBuffer(blobUrl, buffer), (buffer) => _onAudioLoadError(blobUrl, 'decode error', buffer)); }); arrayBufferRequest.on.error.add((args) { _onAudioLoadError(blobUrl, 'BufferLoader: XHR error', args); }); arrayBufferRequest.send(); } void _onAudioLoadError(String blobUrl, String description, error) { print(['Error!', description, error]); _loadResourceFailed(blobUrl); } void _saveBuffer(String blobUrl, AudioBuffer buffer) { if (buffer == null) { _onAudioLoadError(blobUrl, 'null buffer', ''); } _loadResourceSucceed(blobUrl, buffer); } }
Extends
ResourceLoader<T> > AudioLoader
Constructors
new AudioLoader(AudioContext context, Iterable<String> urlList) #
AudioLoader(this.context, Iterable<String> urlList) : super(urlList);
Properties
final int completedBytes #
int get completedBytes { return _entries.selectNumbers((e) => e.completedBytes).sum(); }
final int completedCount #
int get completedCount => _entries.count((e) => e.completed);
final AudioContext context #
final AudioContext context;
final Type runtimeType #
A representation of the runtime type of the object.
external Type get runtimeType;
final int totalBytes #
int get totalBytes { return _entries.selectNumbers((e) { if(e.totalBytes == null) { return _defaultSize; } else { return e.totalBytes; } }).sum(); }
Operators
bool operator ==(other) #
The equality operator.
The default behavior for all Object
s is to return true if and
only if this
and
other are the same object.
If a subclass overrides the equality operator it should override
the hashCode
method as well to maintain consistency.
bool operator ==(other) => identical(this, other);
Methods
new AudioLoader(AudioContext context, Iterable<String> urlList) #
AudioLoader(this.context, Iterable<String> urlList) : super(urlList);
T getResource(String url) #
T getResource(String url) => _getByUrl(url).resource;
int hashCode() #
Get a hash code for this object.
All objects have hash codes. Hash codes are guaranteed to be the
same for objects that are equal when compared using the equality
operator ==
. Other than that there are no guarantees about
the hash codes. They will not be consistent between runs and
there are no distribution guarantees.
If a subclass overrides hashCode
it should override the
equality operator as well to maintain consistency.
external int hashCode();
void load() #
void load() { assert(_state == StateUnloaded); _state = StateLoading; for(final e in _entries) { _httpLoad(e.url); } }
noSuchMethod(String name, List args) #
noSuchMethod
is invoked when users invoke a non-existant method
on an object. The name of the method and the arguments of the
invocation are passed to noSuchMethod
. If noSuchMethod
returns a value, that value becomes the result of the original
invocation.
The default behavior of noSuchMethod
is to throw a
noSuchMethodError
.
external Dynamic noSuchMethod(String name, List args);
const Object() #
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.
const Object();
new ResourceLoader(Iterable<String> urlList) #
ResourceLoader(Iterable<String> urlList) : _entries = _buildRORE(urlList);
String toString() #
Returns a string representation of this object.
external String toString();