Safari Desktop Mac:
startAudio is throwing exception on safari not regularly but 4/10 times. startAudio operation is performed when both encode and decode are returned with success in mediasdkchange event.
await this.zoomMediaStream.startAudio({ autoStartAudioInSafari: true });
It throws OPERATION_TIMEOUT.
To me it looks like OEPRATION_TIMEOUT happens due to websocket connection i think not sure. But this only happens on safari.
Safari IPHONE:
muteUserAudioLocally does not work on iphone safari it works on iphone chrome correctly.
await this.zoomMediaStream.muteUserAudioLocally(userId);
It does not throw any exception.
Even when i periodically check local volume status using getUserVolumeLocally(userId) for that user it correctly shows 0 volume. But voice can still be heard. No effect of muteUserAudioLocally this only happens on safari iphone.
Also on safari preloadDependentAssets does not work properly, it always try to fetch from two sites one some cloudfront site for which it throws 403 error everytime, and another provided url from which it gets assets successfully.
both preloadDependentAssets and zoomClient.init has same dependent assets url.
There were no crashes for muteUserAudioLocally as mentioned above. Even getUserVolumeLocally was returning volume 0 for that userid. muteUserAudioLocally function returned success. This issue was only occurring on ios safari. It happens all the time.
For desktop safari macbook pro no matter the version, OPERATION_TIMEOUT occures for only audio, video was working ok. This was only on safari. Steps was when startAudio was called on after audio encode and decode were return with success, exception was thrown with OPERATION_TIMEOUT. But if i mute and unmute the user audio starts working. This does not happen all the time. It occurs randomly.
This i am getting for dependent assets but in network logs i can see they were loaded with predefined custom assets url using preloadDependentAssets. Why is it trying to get those when preloadedAssets is called with a url. Only occurs in safari.
Also on IOS with every IOS version and both chrome and safari browser , when tab is inactive and audio is played on other apps. Returning to tab requires audio restart. Is there any better way of handling this.
It’s quite likely that after calling stream.startAudio({ autoStartAudioInSafari: true }), the user didn’t interact with the page.
Due to browser privacy policies, automatic audio joining is not allowed on Safari. Internally, in the Video SDK, we wait for user interaction after calling this method. If there is no interaction within 40 seconds, we return OPERATION_TIMEOUT.
Safari IPHONE:
Due to browser capability limitations, muteUserAudioLocally is currently not available on iOS. We will improve the prompt message for this method call in the future.
Dependent assets 403
These are the sourcemap resources for our Video SDK library, used only when troubleshooting. They have no impact on functionality.
Audio interrupt when back
This is a limitation on iOS browsers. When the session is switched to the background and audio is played in another app, the audio in the session will be interrupted, and you need to manually start the audio again, you can listen to current-audio-change event to catch the change.
Starting from Video SDK 1.10.5, we provide the audio leave reason in the current-audio-change event.