import 'dart:async'; import 'dart:core'; import 'package:flutter/material.dart'; import 'package:flutter_webrtc/flutter_webrtc.dart'; import 'draggable_cam.dart'; class CamViewWidget extends StatefulWidget { RTCVideoRenderer localRenderer; RTCVideoRenderer remoteRenderer; MediaStream localStream; BoxConstraints constraints; StreamController onButtonBarVisibleStreamController; StreamController onButtonBarHeightStreamController; CamViewWidget({this.localRenderer, this.remoteRenderer, this.constraints, this.onButtonBarVisibleStreamController, this.onButtonBarHeightStreamController}); @override _CamViewWidgetState createState() => _CamViewWidgetState(); } class _CamViewWidgetState extends State { @override void initState() { super.initState(); } @override Widget build(BuildContext context) { return Container( width: double.infinity, height: double.infinity, child: Stack( children: [ FractionallySizedBox( heightFactor: 1, widthFactor: 1, child: Container( child: RTCVideoView(widget.remoteRenderer, mirror: true), ), ), DraggableCam( key: Key('publisher'), onButtonBarHeight: widget.onButtonBarHeightStreamController.stream, onButtonBarVisible: widget.onButtonBarVisibleStreamController.stream, availableScreenSize: widget.constraints.biggest, child: RTCVideoView(widget.localRenderer), ), // Expanded(child: RTCVideoView(widget.remoteRenderer)), ], ), ); } }