Метод getUserMedia
- @SupportedBrowser(SupportedBrowser.CHROME)
- {dynamic audio = false,
- dynamic video = false}
Получает поток (видео и/или аудио) с локального компьютера.
Используйте MediaStream.supported, чтобы проверить, поддерживается ли эта функция текущей платформой. По умолчанию аргументы audio и video имеют значение false (поток не использует аудио или видео соответственно).
Пример использования:
window.navigator.getUserMedia(audio: true, video: true).then((stream) {
var video = new VideoElement()
..autoplay = true
..src = Url.createObjectUrlFromStream(stream);
document.body.append(video);
}); Пользователь также может передать в параметры audio или video объекты Map, чтобы задать обязательные и необязательные ограничения для медиапотока. Если не передавать объект Map, а передать true, будет создан MediaStream с возможностью передачи аудио или видео, но без дополнительных ограничений. Конкретные имена ограничений для аудио и видео пока не окончательно определены, но на момент написания этого текста можно использовать следующий пример, задающий дополнительные ограничения.
window.navigator.getUserMedia(
audio: true,
video: {'mandatory':
{ 'minAspectRatio': 1.333, 'maxAspectRatio': 1.334 },
'optional':
[{ 'minFrameRate': 60 },
{ 'maxWidth': 640 }]
}); См. также:
Реализация
@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;
}
© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.19.6/dart-html/Navigator/getUserMedia.html