MediaStream class
@DomName('MediaStream')
@SupportedBrowser(SupportedBrowser.CHROME)
@Experimental
// http://dev.w3.org/2011/webrtc/editor/getusermedia.html#mediastream
class MediaStream extends EventTarget native "MediaStream" {
@DomName('MediaStream.addtrackEvent')
@DocsEditable
static const EventStreamProvider<Event> addTrackEvent = const EventStreamProvider<Event>('addtrack');
@DomName('MediaStream.endedEvent')
@DocsEditable
static const EventStreamProvider<Event> endedEvent = const EventStreamProvider<Event>('ended');
@DomName('MediaStream.removetrackEvent')
@DocsEditable
static const EventStreamProvider<Event> removeTrackEvent = const EventStreamProvider<Event>('removetrack');
@DomName('MediaStream.MediaStream')
@DocsEditable
factory MediaStream([stream_OR_tracks]) {
if (!?stream_OR_tracks) {
return MediaStream._create_1();
}
if ((stream_OR_tracks is MediaStream || stream_OR_tracks == null)) {
return MediaStream._create_2(stream_OR_tracks);
}
if ((stream_OR_tracks is List<MediaStreamTrack> || stream_OR_tracks == null)) {
return MediaStream._create_3(stream_OR_tracks);
}
throw new ArgumentError("Incorrect number or type of arguments");
}
static MediaStream _create_1() => JS('MediaStream', 'new MediaStream()');
static MediaStream _create_2(stream_OR_tracks) => JS('MediaStream', 'new MediaStream(#)', stream_OR_tracks);
static MediaStream _create_3(stream_OR_tracks) => JS('MediaStream', 'new MediaStream(#)', stream_OR_tracks);
@DomName('MediaStream.ended')
@DocsEditable
final bool ended;
@DomName('MediaStream.id')
@DocsEditable
final String id;
@DomName('MediaStream.label')
@DocsEditable
@Experimental // non-standard
final String label;
@JSName('addEventListener')
@DomName('MediaStream.addEventListener')
@DocsEditable
void $dom_addEventListener(String type, EventListener listener, [bool useCapture]) native;
@DomName('MediaStream.addTrack')
@DocsEditable
void addTrack(MediaStreamTrack track) native;
@DomName('MediaStream.dispatchEvent')
@DocsEditable
bool dispatchEvent(Event event) native;
@DomName('MediaStream.getAudioTracks')
@DocsEditable
List<MediaStreamTrack> getAudioTracks() native;
@DomName('MediaStream.getTrackById')
@DocsEditable
MediaStreamTrack getTrackById(String trackId) native;
@DomName('MediaStream.getVideoTracks')
@DocsEditable
List<MediaStreamTrack> getVideoTracks() native;
@JSName('removeEventListener')
@DomName('MediaStream.removeEventListener')
@DocsEditable
void $dom_removeEventListener(String type, EventListener listener, [bool useCapture]) native;
@DomName('MediaStream.removeTrack')
@DocsEditable
void removeTrack(MediaStreamTrack track) native;
@DomName('MediaStream.stop')
@DocsEditable
@Experimental // untriaged
void stop() native;
@DomName('MediaStream.onaddtrack')
@DocsEditable
Stream<Event> get onAddTrack => addTrackEvent.forTarget(this);
@DomName('MediaStream.onended')
@DocsEditable
Stream<Event> get onEnded => endedEvent.forTarget(this);
@DomName('MediaStream.onremovetrack')
@DocsEditable
Stream<Event> get onRemoveTrack => removeTrackEvent.forTarget(this);
/**
* Checks if the MediaStream APIs are supported on the current platform.
*
* See also:
*
* * [Navigator.getUserMedia]
*/
static bool get supported =>
JS('bool', '''!!(#.getUserMedia || #.webkitGetUserMedia ||
#.mozGetUserMedia || #.msGetUserMedia)''',
window.navigator,
window.navigator,
window.navigator,
window.navigator);
}
Extends
Interceptor > EventTarget > MediaStream
Static Properties
const EventStreamProvider<Event> addTrackEvent #
static const EventStreamProvider<Event> addTrackEvent = const EventStreamProvider<Event>('addtrack')
const EventStreamProvider<Event> endedEvent #
static const EventStreamProvider<Event> endedEvent = const EventStreamProvider<Event>('ended')
const EventStreamProvider<Event> removeTrackEvent #
static const EventStreamProvider<Event> removeTrackEvent = const EventStreamProvider<Event>('removetrack')
final bool supported #
Checks if the MediaStream APIs are supported on the current platform.
See also:
static bool get supported =>
JS('bool', '''!!(#.getUserMedia || #.webkitGetUserMedia ||
#.mozGetUserMedia || #.msGetUserMedia)''',
window.navigator,
window.navigator,
window.navigator,
window.navigator);
Constructors
factory MediaStream([stream_OR_tracks]) #
@DomName('MediaStream.MediaStream')
@DocsEditable
factory MediaStream([stream_OR_tracks]) {
if (!?stream_OR_tracks) {
return MediaStream._create_1();
}
if ((stream_OR_tracks is MediaStream || stream_OR_tracks == null)) {
return MediaStream._create_2(stream_OR_tracks);
}
if ((stream_OR_tracks is List<MediaStreamTrack> || stream_OR_tracks == null)) {
return MediaStream._create_3(stream_OR_tracks);
}
throw new ArgumentError("Incorrect number or type of arguments");
}
Properties
final 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.
int get hashCode => Primitives.objectHashCode(this);
final Events on #
This is an ease-of-use accessor for event streams which should only be used when an explicit accessor is not available.
Events get on => new Events(this);
final Stream<Event> onAddTrack #
@DomName('MediaStream.onaddtrack')
@DocsEditable
Stream<Event> get onAddTrack => addTrackEvent.forTarget(this);
final Stream<Event> onEnded #
@DomName('MediaStream.onended')
@DocsEditable
Stream<Event> get onEnded => endedEvent.forTarget(this);
Operators
bool operator ==(other) #
The equality operator.
The default behavior for all Objects 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
void addTrack(MediaStreamTrack track) #
@DomName('MediaStream.addTrack')
@DocsEditable
void addTrack(MediaStreamTrack track) native;
bool dispatchEvent(Event event) #
@DomName('MediaStream.dispatchEvent')
@DocsEditable
bool dispatchEvent(Event event) native;
List<MediaStreamTrack> getAudioTracks() #
@DomName('MediaStream.getAudioTracks')
@DocsEditable
List<MediaStreamTrack> getAudioTracks() native;
MediaStreamTrack getTrackById(String trackId) #
@DomName('MediaStream.getTrackById')
@DocsEditable
MediaStreamTrack getTrackById(String trackId) native;
List<MediaStreamTrack> getVideoTracks() #
@DomName('MediaStream.getVideoTracks')
@DocsEditable
List<MediaStreamTrack> getVideoTracks() native;
dynamic noSuchMethod(Invocation invocation) #
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 in an Invocation.
If noSuchMethod returns a value, that value becomes the result of
the original invocation.
The default behavior of noSuchMethod is to throw a
noSuchMethodError.
dynamic noSuchMethod(Invocation invocation) {
throw new NoSuchMethodError(
this,
_symbolToString(invocation.memberName),
invocation.positionalArguments,
_symbolMapToStringMap(invocation.namedArguments));
}
void removeTrack(MediaStreamTrack track) #
@DomName('MediaStream.removeTrack')
@DocsEditable
void removeTrack(MediaStreamTrack track) native;
void stop() #
@DomName('MediaStream.stop')
@DocsEditable
@Experimental // untriaged
void stop() native;
String toString() #
Returns a string representation of this object.
String toString() => Primitives.objectToString(this);
void $dom_addEventListener(String type, EventListener listener, [bool useCapture]) #
@JSName('addEventListener')
@DomName('MediaStream.addEventListener')
@DocsEditable
void $dom_addEventListener(String type, EventListener listener, [bool useCapture]) native;
void $dom_removeEventListener(String type, EventListener listener, [bool useCapture]) #
@JSName('removeEventListener')
@DomName('MediaStream.removeEventListener')
@DocsEditable
void $dom_removeEventListener(String type, EventListener listener, [bool useCapture]) native;