Raw Audio Clarification

Description
I am reading conflicting information on raw audio data that Zoom SDK accepts.

Which macOS Meeting SDK version?
v5.13.5.14876

To Reproduce(If applicable)
Steps to reproduce the behavior:
Initialize the ZoomSDKAudioRawDataSender

Device (please complete the following information):

  • Device: Apple MacBook Pro (13-inch, M1)
  • OS: macOS Ventura 13.0.1

Additional context
I am using a call like the one below:

audioDataSender.send(&outputBuffer, dataLength: UInt32(length), sampleRate: Int32(44100))

However, when I do this, I just get static bursts. This indicates to me that the format I am trying to send is incompatible.

So, when I have researched for more information on exactly what type of format to send, I see the majority of the locations I see that PCM data is 16 bit signed, mono channel and in little endian order is usually the answer. However, I know that there is an option for high def audio, and I believe stereo as well. So, is there multiple formats accepted? Or if I am using the ZoomSDKAudioRawDataSender we are limited to just mono? Also, is the sample rate correct at 44100? Or is it 48000? 32000? Please clarify there are conflicting answers in several places.

@vasoundman,

Thank you for writing us and we appreciate you sharing your feedback on the conflicting information. I am working to gather the information you requested internally and will share what I learn. In the meantime, can you share the links to the documentation with conflicting information? If needed, I want to make sure we make the necessary updates.

Have you checked the sample rate via the getSampleRate method ?

Please share the links to the resources where you are seeing this information and will help to submit a documentation update request to reflect that.

Thanks for getting back with me. I will do some digging to see where exactly we got these conflicting details. It may take a moment due to this is been researched for a while and the discovery was in different types of searches.

No problem at all, and thank you for your contributions, @vasoundman! I am working on my end to get further clarification. We will update our support document if needed so you can have all the information in one central place. If you have any other questions or feedback, please share them here.

These are two examples of where it’s difficult to know what exactly you expect.

The following link says that we can send 16k to 48k support of mono or stereo:

The following link here says that we must convert our audio into a specific format. Send audio raw data, channel number must be mono, and sampling bits must be 16:
https://marketplace.zoom.us/docs/sdk/native-sdks/macos/sdk-reference/
ZoomSDKAudioRawDataSender Class Reference

Thank you for sharing your feedback! I will help to clear this up @vasoundman!

Hi there Donte,

I have made a few discoveries that you (and the readers of the post) maybe interested in hearing. I am getting a AVAudioPCMBuffer from my video playback in Swift.

The AVAudioPCMBuffer has the following:

  • .floatChannelData
  • .int16ChannelData
  • .int32ChannelData

My audio (from the media file) is using float data. So the int16 and int32 is nil during playback. Converting the float to int16 was not the answer either. I had to go a step further and convert the int16 to a Char array. But now, the audio playback in Zoom so super slow. Im currently in the process of now converting the stereo (2ch) audio into mono. This probably will solve that issue.

This goes back to the question of why can we not send 2 ch audio to you. Looks like we are getting close, but still have questions about this.

Thank you for sharing these details, @vasoundman! I just wanted to follow up and let you know I am working on this and will share updates as they become available.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.