anchor.diff:    void _hangUp() async {
       try {
         await _remotePeerConnection?.close();
  +      await _remotePeerConnection?.dispose();
         _remotePeerConnection = null;
         _remoteRenderer.srcObject = null;
       } catch (e) {
  
positive.code:   void initState() {
      print('Init State');
      super.initState();
      initRenderers();
      initLocalConnection();
      _refreshMediaDevices();
      navigator.mediaDevices.ondevicechange = (event) async {
        print('++++++ ondevicechange ++++++');
  
negative.code:       await _videoSender?.dispose();
        await _audioSender?.dispose();
        await _remotePeerConnection?.close();
        await _remotePeerConnection?.dispose();
        _remotePeerConnection = null;
        await _localPeerConnection?.close();
        await _localPeerConnection?.dispose();
        _localPeerConnection = null;
        _localRenderer.srcObject = null;
        _remoteRenderer.srcObject = null;
  