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);
});
用户还可以传递 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;
}