Which AudioSource does the Zoom SDK use for capturing audio?

We’ve noticed an issue where others in a Zoom meeting room cannot hear the audio from one of the participants who has joined from an embedded Android device using the Zoom SDK. The participant is not muted. This seems to happen only when the embedded participant has system wide voice recognition enabled.

The embedded device allows multiple apps to grab the mic audio, but only if they use different AudioSources.

https://developer.android.com/reference/android/media/MediaRecorder.AudioSource

We’ve tested other video conferencing apps and they don’t seem to suffer from this problem. In other words, voice recognition can be enabled and the remote participants can still hear the embedded participants audio. We are currently investigating, but it would really help if we knew which AudioSource the Zoom SDK was using.

Hi vuzix_greg,

Thanks for the post. Regarding the AudioSource, for API level higher than 22, we are using MediaRecorder.AudioSource.VOICE_COMMUNICATION, otherwise, we are using MediaRecorder.AudioSource.VOICE_RECOGNITION.

Hope this helps. Thanks!

Thanks for the reply @Carson_Chen

It’s very interesting that there is a case where you use VOICE_RECOGNITION. This could explain why no audio is coming through when another app process is using this same audio source. However, the embedded device giving us trouble is running API level 27. Based on your answer, the Zoom SDK should be using VOICE_COMMUNICATION and there would be no conflict.

Is there any other potential case where the SDK would choose VOICE_RECOGNITION besides the API level? Do you check Build.VERSION.SDK_INT? Or something else?

We really appreciate your help with this!

Hi vuzix_greg,

Thanks for the reply. I will ask the engineering team to confirm this and get back to you shortly.

In the meantime, is this embedded Android device something we could search and find the specs online? Do you have any other information that could help us to reproduce this issue?

Thanks!

@Carson_Chen yes, absolutely. This is happening on Vuzix M400 smart glasses:

https://www.vuzix.com/products/m400-smart-glasses

M400 is API level 27. We tested the same scenario on M300 (API 23) and there is no issue. So we’re thinking there’s some conditional logic in the Zoom SDK that is choosing a different audio source between the two devices.

Hi vuzix_greg,

Thanks for the information. Really appreciate it. Will forward it to the engineering team and provide an update as soon as possible. Thanks!

@Carson_Chen just a quick follow up. We have some more information on our end.

This might be related to AudioManager.setMode():

https://developer.android.com/reference/android/media/AudioManager#setMode(int)

Does the Zoom SDK ever call this method and which constant do you pass in? Also, is there any conditional logic around this call? We may have a bug in our platform and this additional information would help us.

Hi vuzix_greg,

Thanks for the reply. Would like to confirm: Are you using Zoom default UI or Custom UI? And what is the SDK version you are using?

Thx

@Carson_Chen Looks like we’re on v4.6.15086.0209 and we use a custom UI.

@vuzix_greg Thanks for the info. I am consulting the engineering team on this and get back to you shortly. Thx

Hi vuzix_greg,

Normally we will use AudioManager.MODE_IN_COMMUNICATION, if a device that does not support this mode, we will use AudioManager.MODE_NORMAL. Hope this helps. Thanks!

1 Like