anchor.diff:    MediaStream _localStream;
     final _localRenderer = new RTCVideoRenderer();
     bool _inCalling = false;
  +  bool _isTorchOn = false;
     MediaRecorder _mediaRecorder;
     get _isRec => _mediaRecorder != null;
   
  
positive.code:         title: new Text('GetUserMedia API Test'),
          actions: _inCalling
              ? <Widget>[
                  new IconButton(
                    icon: Icon(Icons.camera),
                    onPressed: _captureFrame,
  
negative.code:     });
    }
  
    _toggleTorch() async {
      final videoTrack = _localStream.getVideoTracks().firstWhere((track) => track.kind == "video");
      final has = await videoTrack.hasTorch();
      if (has) {
        print("[TORCH] Current camera supports torch mode");
        setState(() => _isTorchOn = !_isTorchOn);
        await videoTrack.setTorch(_isTorchOn);
        print("[TORCH] Torch state is now ${_isTorchOn ? "on" : "off"}");
      } else {
        print("[TORCH] Current camera does not support torch mode");
      }
    }
  
    _toggleCamera() async {
      final videoTrack = _localStream.getVideoTracks().firstWhere((track) => track.kind == "video");
      await videoTrack.switchCamera();
    }
  
    _captureFrame() async {
      String filePath;
      if (Platform.isAndroid) {
  