getUserMedia method
- @SupportedBrowser(SupportedBrowser.CHROME)
- dynamic audio = false,
- dynamic video = false,
Gets a stream (video and or audio) from the local computer.
Use MediaStream.supported to check if this is supported by the current
platform. The arguments audio
and video
default to false
(stream does
not use audio or video, respectively).
Simple example usage:
window.navigator.getUserMedia(audio: true, video: true).then((stream) {
var video = new VideoElement()
..autoplay = true
..src = Url.createObjectUrlFromStream(stream);
document.body.append(video);
});
The user can also pass in Maps to the audio or video parameters to specify
mandatory and optional constraints for the media stream. Not passing in a
map, but passing in true
will provide a MediaStream with audio or
video capabilities, but without any additional constraints. The particular
constraint names for audio and video are still in flux, but as of this
writing, here is an example providing more constraints.
window.navigator.getUserMedia(
audio: true,
video: {'mandatory':
{ 'minAspectRatio': 1.333, 'maxAspectRatio': 1.334 },
'optional':
[{ 'minFrameRate': 60 },
{ 'maxWidth': 640 }]
});
See also:
Implementation
@SupportedBrowser(SupportedBrowser.CHROME)
Future<MediaStream> getUserMedia({audio = false, video = false}) {
var completer = new Completer<MediaStream>();
var options = {'audio': audio, 'video': video};
_ensureGetUserMedia();
this._getUserMedia(convertDartToNative_SerializedScriptValue(options),
(stream) {
completer.complete(stream);
}, (error) {
completer.completeError(error);
});
return completer.future;
}