iosaudiowebrtcapprtc

How to disable audio in webrtc mobile app(ios) without changing in framework


I am working with webrtc mobile(ios). I can't disable audio in webrtc(ios). I have got no flag to disable audio.By changing in framwork/library it can done easily. My purpose is that I have to disable audio without changing in framework/library. Can anyone help me?.


Solution

  • Update your question with code snippet, how you are creating mediaStrem or tracks(audio/video).

    Generally with default Native WebRTC Framework,

    RTCMediaStream localStream = [_factory mediaStreamWithStreamId:kARDMediaStreamId];
    if(audioRequired) {
      RTCAudioTrack *aTrack = [_lmStream createLocalAudioTrack];
      [localStream addAudioTrack:aTrack];
    }
    RTCVideoTrack *vTrack = [_lmStream createLocalVideoTrack];
    [localStream addVideoTrack:vTrack];
    [_peerConnection addStream:localStream];
    

    If you want to mute the Audio during the call, use below function.

    - (void)enableAudio:(NSString *)id isAudioEnabled:(BOOL) isAudioEnabled {
      NSLog(@"Auido enabled: %d streams count:%d ", id, isAudioEnabled, _peerConnection.localStreams.count);
      if(_peerConnection.localStreams.count > 0) {
        RTCMediaStream *lStream = _peerConnection.localStreams[0];
        if(lStream.audioTracks.count > 0) { // Usually we will have only one track. If you have more than one, need to traverse all.
          // isAudioEnabled == 1 -> Unmute
          // isAudioEnabled == 0 -> Mute
          [lStream.audioTracks[0] setIsEnabled:isAudioEnabled];
        }
      }
    }