setDeviceMuted method

  1. @override
Future<void> setDeviceMuted(
  1. GroupCallSession groupCall,
  2. bool muted,
  3. MediaInputKind kind
)
override

Implementation

@override
Future<void> setDeviceMuted(
    GroupCallSession groupCall, bool muted, MediaInputKind kind) async {
  if (!await hasMediaDevice(groupCall.voip.delegate, kind)) {
    return;
  }

  if (localUserMediaStream != null) {
    switch (kind) {
      case MediaInputKind.audioinput:
        localUserMediaStream!.setAudioMuted(muted);
        setTracksEnabled(
            localUserMediaStream!.stream!.getAudioTracks(), !muted);
        for (final call in _callSessions) {
          await call.setMicrophoneMuted(muted);
        }
        break;
      case MediaInputKind.videoinput:
        localUserMediaStream!.setVideoMuted(muted);
        setTracksEnabled(
            localUserMediaStream!.stream!.getVideoTracks(), !muted);
        for (final call in _callSessions) {
          await call.setLocalVideoMuted(muted);
        }
        break;
      default:
    }
  }

  groupCall.onGroupCallEvent.add(GroupCallStateChange.localMuteStateChanged);
  return;
}