Dart API Referencedart:htmlMediaStream

MediaStream class

@DomName('MediaStream')
@SupportedBrowser(SupportedBrowser.CHROME)
@Experimental
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
 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
 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 bool ended #

final bool ended

final int hashCode #

inherited from Interceptor

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.

docs inherited from Object
int get hashCode => Primitives.objectHashCode(this);

final String id #

final String id

final String label #

final String label

final Events on #

inherited from EventTarget

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);

final Stream<Event> onRemoveTrack #

@DomName('MediaStream.onremovetrack')
@DocsEditable
Stream<Event> get onRemoveTrack => removeTrackEvent.forTarget(this);

final Type runtimeType #

inherited from Interceptor

A representation of the runtime type of the object.

docs inherited from Object
Type get runtimeType => getRuntimeType(this);

Operators

bool operator ==(other) #

inherited from Interceptor

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.

docs inherited from Object
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) #

inherited from Interceptor

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.

docs inherited from Object
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
void stop() native;

String toString() #

inherited from Interceptor

Returns a string representation of this object.

docs inherited from 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;