translationChannelsAvailable function
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
}
}