translationChannelsAvailable function

Future<void> translationChannelsAvailable(
  1. TranslationChannelsAvailableOptions options
)

Handles the translation:channelsAvailable socket event. Called when a speaker has translation channels available.

Implementation

Future<void> translationChannelsAvailable(
    TranslationChannelsAvailableOptions options) async {
  try {
    final data = options.data;

    options.updateAvailableTranslationChannels?.call(
      data.speakerId,
      data.languages,
      data.originalProducerId,
    );

    // Auto-subscribe if user has a default listen language
    final myDefaultListenLanguage = options.myDefaultListenLanguage;
    if (myDefaultListenLanguage != null &&
        data.languages.contains(myDefaultListenLanguage) &&
        options.socket != null &&
        options.roomName != null) {
      options.socket.emit('translation:subscribe', {
        'roomName': options.roomName,
        'speakerId': data.speakerId,
        'language': myDefaultListenLanguage,
        'originalProducerId': data.originalProducerId,
      });
    }
  } catch (e) {
    // Handle error silently
  }
}