Zoom Linux SDK 5.15.12 audio recording not working

Format Your New Topic as Follows:

Meeting SDK Type and Version
Zoom Meeting SDK Linux- version 5.15.12

Description
Hi Team, we are working on integrating our app with linux sdk and running into issues with accessing the zoom audio raw data

As per documentation, we have followed the below sequence of steps
1.Pre init- set the auth token,
2. implement an instance of the audio raw data callback ZoomSDKAudioRawDataDelegate
3. After recording privilege changed ->startRawRecording, getAudioRawDataHelperfor managing subscription and call subscribe event

Even though all the calls mentioned in the steps above result in ZoomSDKError_Success, the audio stream callbacks functions are never called. Log statements written within the functions onMixedAudioRawDataReceived and onOneWayAudioRawDataReceived never appear on the terminal.
Meanwhile the app works, we can interact with it, and perform all operations like join, leave, however the audio stream data is not there.

A few interesting logs we observed were
ALSA lib control.c:1379:(snd_ctl_open_noupdate) Invalid CTL
ALSA lib pcm.c:2642:(snd_pcm_open_noupdate) Unknown PCM

We are running the following experiment on linux centos amazon ec2 vm instance with latest linux SDK 5.15.12 . Note:this instance does not have any physical hardware sound drivers.We have installed the pulse audio setup on machine.

Error?
ALSA lib control.c:1529:(snd_ctl_open_noupdate) Invalid CTL
ALSA lib pcm.c:2666:(snd_pcm_open_noupdate) Unknown PCM

Troubleshooting Routes
Installed also-utils, pulseaudio, also-base

How To Reproduce
N/A

@sucharitha ,

Could you share how you are setting up your docker container, and the configurations done on pulseaudio?

@chunsiong.zoom
This started working after adding below in ~/.config/zoomus.conf

[General]
system.audio.type=default

Is there any way we can set which output device to use in SDK?

@pramodb ,

Curious, where did you managed to find the fix by using zoomus.conf file?

For switching of output device, you can try to set it using the IAudioSettingContext

	ZOOM_SDK_NAMESPACE::IAudioSettingContext* pAudioContext = m_pSettingService->GetAudioSettings();
	if (pAudioContext)
	{

	
		if (pAudioContext->GetSpeakerList()->GetCount() >= 1) {
			std::cout << "Number of speaker(s) : " << pAudioContext->GetSpeakerList()->GetCount() << std::endl;
			ISpeakerInfo* sInfo = pAudioContext->GetSpeakerList()->GetItem(0);
			const zchar_t* deviceName = sInfo->GetDeviceName();
			if (deviceName != nullptr && deviceName[0] != '\0') {
				std::cout << "Speaker(0) name : " << sInfo->GetDeviceName() << std::endl;
				std::cout << "Speaker(0) id : " << sInfo->GetDeviceId() << std::endl;

				pAudioContext->SelectSpeaker(sInfo->GetDeviceId(), sInfo->GetDeviceName());
				std::cout << "Is selected speaker? : " << pAudioContext->GetSpeakerList()->GetItem(0)->IsSelectedDevice() << std::endl;
			}
			else {
				std::cout << "Speaker(0) name is empty or null." << std::endl;
				std::cout << "Speaker(0) id is empty or null." << std::endl;
			}
}

@chunsiong.zoom

It is mentioned here:

https://aur.archlinux.org/packages/zoom

Before, I thought that it was the alsa problem. After hours and hours finding the solutions, the virtual audio is actually created and start to think that it must be zoom that didn’t recognize the device because it can auto join with audio before.

1 Like

@sucharitha

We are also using the linux meeting sdk 5.15.12 but are running into issues , the auth callback never returns back. Could you please share how did you configured the auth to work ?