MakeVideoElementFromCamera function

Future<VideoElement?> MakeVideoElementFromCamera()

Implementation

Future<HTML.VideoElement?> MakeVideoElementFromCamera() {
  LogWarn("VideoElement/Camera requested");
  Completer<HTML.VideoElement?> c = Completer();
  // TODO: come up with better error handling signaling
  HTML.window.navigator.getUserMedia(video: true).then((HTML.MediaStream stream) {
    LogWarn("VideoElement construction");
    HTML.VideoElement video = HTML.VideoElement()..autoplay = true;
    video.onPlaying.first.then((_) => c.complete(video));
    video.srcObject = stream;
  }).catchError((Object error) {
    LogError("Camera open error ${error}");
    c.complete(null);
  });
  return c.future;
}