After following the documentation on how to obtain the raw audio, nothing I tried worked. The onMixedAudioRawDataReceived
and onOneWayAudioRawDataReceived
are never fired.
After digging through the sample app, I found that this line of code is required during initialization:
ZoomInstantSDK.getInstance().getAudioHelper().subscribe()
However, the sample app does not actually execute this. The function subscribeAudio() isn’t used.
Please update your documentation to indicate that a call to this is required. This should be mentioned in these two locations:
https://marketplace.zoom.us/docs/sdk/video/android/advanced/raw-data
https://marketplace.zoom.us/docs/sdk/video/android/essential/callbacks
I also recommend that your sample app actually makes use of this to demonstrate that it really works.
While you’re at it, you should also indicate in the docs what the audio format is. I’ve seen one other post with someone asking about this and the staff response was “check Stackoverflow”. Seriously??
The following information is absolutely vital for anyone who needs to process the audio:
Encoding: Signed 16-Bit PCM
Byte order: Little endian
Channels: mono
The sample rate can be retrieved from the rawData parameter in onMixedAudioRawDataReceived
and onOneWayAudioRawDataReceived
: rawData.sampleRate
Typically this is 32,000 but it might vary depending on the bandwidth a Zoom server uses at the time of sending the data.