Guidance Requested: Sending Audio Buffers to Zoom via IZoomSDKVirtualAudioMicEvent Interface

We are trying to send audio buffers to zoom, as a virtual Mic. This is our setup so far. We’ve implemented this class:
public class ZoomRawAudioVirtualSource implements IZoomSDKVirtualAudioMicEvent

From this function from the above class
public void onMicInitialize(IZoomSDKAudioRawDataSender iZoomSDKAudioRawDataSender)

which gives us iZoomSDKAudioRawDataSender, which has
MobileRTCRawDataError send(ByteBuffer var1, int var2, int var3);

we initialize our setup like this :
audioSource = new ZoomRawAudioVirtualSource();
rawAudioDataHelper = new ZoomSDKAudioRawDataHelper();
rawAudioDataHelper.setExternalAudioSource(audioSource);

The issue is that we tried sending the Bytebuffer to send function, and its either noisy or its not playing anything. Are there specific requirements for the audio buffer? What Zoom is expecting this buffer to be?

Here’s another way to state the above if it helps:

We are currently attempting to integrate a virtual microphone into Zoom by sending audio buffers. Our setup involves the implementation of the IZoomSDKVirtualAudioMicEvent interface with our ZoomRawAudioVirtualSource class.

In this class, we override the onMicInitialize(IZoomSDKAudioRawDataSender iZoomSDKAudioRawDataSender) method, providing us with an IZoomSDKAudioRawDataSender instance, which is used to send raw audio data with the send(ByteBuffer var1, int var2, int var3) method.

Our initialization process is as follows:

audioSource = new ZoomRawAudioVirtualSource();
rawAudioDataHelper = new ZoomSDKAudioRawDataHelper();
rawAudioDataHelper.setExternalAudioSource(audioSource);

However, when we send the ByteBuffer to the send function, the audio is either noisy or does not play at all.

Considering this, we would appreciate it if you could provide us with further guidance. Specifically, we’re interested in the following:

  1. Are there any specific requirements for the audio buffer that we should be aware of?
  2. What is the expected format of the ByteBuffer that should be sent to the send function? For example, what should the byte order be (big-endian or little-endian), and what is the expected sample format (e.g., PCM 16-bit, PCM 24-bit, float, etc.)?
  3. Is there a specified sampling rate and channel configuration (e.g., mono, stereo) that we need to adhere to?
  4. Could you provide any insights or guidance as to why we might be encountering noise or a lack of audio playback when we send our ByteBuffer data?

We appreciate your help in this matter and look forward to hearing from you soon.