aws / amazon-chime-sdk-ios

An iOS client library for integrating multi-party communications powered by the Amazon Chime service.
https://aws.amazon.com/chime/chime-sdk/
Apache License 2.0
141 stars 66 forks source link

Can't join meeting as a "listener" receiving only audio - AudioMode, .noDevice, .noAudio #507

Closed hvsw closed 4 months ago

hvsw commented 2 years ago

Context

Joining with audioMode as .noDevice causes no audio to be received; and joining with default configuration causes camera and audio permissions to be asked even without using it aka "join a listener". We want this behavior to make users to join using the media replication feature which is receive-only without having to ask for user permissions(or only ask when needed, i.e. they're promoted to speakers for example).

At some point, we had support to enable Audio/Video Configuration for Join Without Audio #363, but it seems that changed to .noDevice with a different behavior of not receiving any audio.

Is this the expected behavior? How can I set up the SDK to allow someone to join as a "listener/viewer" that can be promoted on the fly(including iOS permission handling)? Is this possible today? If not, is there something on the road map?

This also happens on the Android SDK. React seems to have implemented both .noAudio and .noDevice behaviors with Audio and None.

References: https://github.com/aws/amazon-chime-sdk-js/issues/2099#issuecomment-1085132691 https://github.com/aws/amazon-chime-sdk-component-library-react/blob/f1b599441543e90c1d20fd41d0a03ec7ba995c23/src/components/quickStarts.stories.mdx

To Reproduce

Steps to reproduce the behavior:

  1. Start a meeting
  2. Setup DefaultAudioClientController.audio to .noDevice.
  3. Notice no audio is received

Expected behavior

SDK should provide extension points so clients can control which OS permissions will end up being required based on the provided experience.

georgezy-amzn commented 2 years ago

Hi @hvsw, for .noDevice, this is expected behaviour; for default configuration, audio is required, that's why audio permission will be asked(camera permission is only asked on request).

Currently we don't support switching audio mode on the fly, I'll mark this as feature request.

linsang21 commented 4 months ago

v0.25.0 introduces new audio capability - see https://github.com/aws/amazon-chime-sdk-ios?tab=readme-ov-file#starting-a-session for more details.

linsang21 commented 4 months ago

I'll close the issue as the feature has launched, if you have further questions, please feel free to open a new one.