Class JavaAudioDeviceModule

java.lang.Object
org.webrtc.audio.JavaAudioDeviceModule
All Implemented Interfaces:
AudioDeviceModule

public class JavaAudioDeviceModule extends Object implements AudioDeviceModule
AudioDeviceModule implemented using android.media.AudioRecord as input and android.media.AudioTrack as output.
  • Field Details

    • TAG

      private static final String TAG
      See Also:
    • audioInput

      private final WebRtcAudioRecord audioInput
    • audioOutput

      private final WebRtcAudioTrack audioOutput
    • inputSampleRate

      private final int inputSampleRate
    • outputSampleRate

      private final int outputSampleRate
    • useStereoInput

      private final boolean useStereoInput
    • useStereoOutput

      private final boolean useStereoOutput
    • nativeLock

      private final Object nativeLock
    • nativeAudioDeviceModule

      private long nativeAudioDeviceModule
  • Constructor Details

    • JavaAudioDeviceModule

      private JavaAudioDeviceModule(Object context, Object audioManager, WebRtcAudioRecord audioInput, WebRtcAudioTrack audioOutput, int inputSampleRate, int outputSampleRate, boolean useStereoInput, boolean useStereoOutput)
  • Method Details

    • builder

      public static JavaAudioDeviceModule.Builder builder(Object context)
    • isBuiltInAcousticEchoCancelerSupported

      public static boolean isBuiltInAcousticEchoCancelerSupported()
      Returns true if the device supports built-in HW AEC, and the UUID is approved (some UUIDs can be excluded).
    • isBuiltInNoiseSuppressorSupported

      public static boolean isBuiltInNoiseSuppressorSupported()
      Returns true if the device supports built-in HW NS, and the UUID is approved (some UUIDs can be excluded).
    • getNativeAudioDeviceModulePointer

      public long getNativeAudioDeviceModulePointer()
      Description copied from interface: AudioDeviceModule
      Returns a C++ pointer to a webrtc::AudioDeviceModule. Caller does _not_ take ownership and lifetime is handled through the release() call.
      Specified by:
      getNativeAudioDeviceModulePointer in interface AudioDeviceModule
    • release

      public void release()
      Description copied from interface: AudioDeviceModule
      Release resources for this AudioDeviceModule, including native resources. The object should not be used after this call.
      Specified by:
      release in interface AudioDeviceModule
    • getAudioTrack

      public WebRtcAudioTrack getAudioTrack()
    • getAudioRecord

      public WebRtcAudioRecord getAudioRecord()
    • setSpeakerMute

      public void setSpeakerMute(boolean mute)
      Description copied from interface: AudioDeviceModule
      Control muting/unmuting the speaker.
      Specified by:
      setSpeakerMute in interface AudioDeviceModule
    • setMicrophoneMute

      public void setMicrophoneMute(boolean mute)
      Description copied from interface: AudioDeviceModule
      Control muting/unmuting the microphone.
      Specified by:
      setMicrophoneMute in interface AudioDeviceModule
    • nativeCreateAudioDeviceModule

      private static long nativeCreateAudioDeviceModule(Object context, Object audioManager, WebRtcAudioRecord audioInput, WebRtcAudioTrack audioOutput, int inputSampleRate, int outputSampleRate, boolean useStereoInput, boolean useStereoOutput)