bigbluebutton-Github/bigbluebutton-html5/imports/api/audio/client
prlanzarin b17ba35238 fix(audio): decouple remote media setup (play) from state callback
Audio state callback and remote media setup both depend on FS's state
(comes through Meteor) and the ICE state (local, peer connection). The
caveat: FS's state can come delayed on reconnection scenarios because
Meteor's websocket generally takes significantly longer to re-connect than
the peer connection, which means the ICE state gets completed way before FS
is flagged as ready.
The practical issue: while outbound audio (client -> FS) will work, inbound
audio (FS -> client) won't _just because it wasn't played_ (even though
data is  coming through).

This commit decouples the remote media setup step from the state
through:
  - Setup remote media when ICE state is completed
  - Run the state callback only after FS is flagged as ready. This
    should maintain the UI states consistent across client-server.
    Keep in mind the assumption that if FS is ready, ICE is completed by
    consequence.
2023-04-11 16:02:20 -03:00
..
bridge fix(audio): decouple remote media setup (play) from state callback 2023-04-11 16:02:20 -03:00