steep-balloon-41261
08/23/2023, 2:46 PMpolite-kilobyte-67570
08/24/2023, 10:11 AMrefined-barista-79203
08/24/2023, 1:25 PMisSpeaking is only changed true when the app is in release mode.wooden-portugal-75199
08/24/2023, 2:30 PMdry-elephant-14928
08/24/2023, 4:22 PMdry-elephant-14928
08/24/2023, 4:22 PMwooden-portugal-75199
08/25/2023, 2:56 PMrefined-barista-79203
08/25/2023, 2:58 PMclass _LiveAudioAvatar extends ConsumerStatefulWidget {
final Participant participant;
const _LiveAudioAvatar({required this.participant});
@override
ConsumerState<ConsumerStatefulWidget> createState() => __LiveAudioAvatarState();
}
class __LiveAudioAvatarState extends SafeConsumerState<_LiveAudioAvatar> {
Participant get _participant => widget.participant;
late final _listener = widget.participant.createListener();
@override
void initState() {
super.initState();
_listener.on<ParticipantEvent>((e) {
log('from widget-${e.runtimeType}');
setState(() {});
});
}
@override
void dispose() {
_listener.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
final theme = SpillColor.of(context);
final isSpeaking = _participant.isSpeaking;
return Container(
width: 48,
height: 48,
decoration: BoxDecoration(
shape: BoxShape.circle,
border: isSpeaking
? Border.all(
width: 2,
color: theme.border.primary,
)
: null,
),
margin: const EdgeInsets.symmetric(vertical: 4.0),
child: Stack(
children: [
if (isSpeaking) const Center(child: SoundWaveformWidget()),
],
),
);
}
}refined-barista-79203
08/25/2023, 3:00 PMParticipantEvent and RoomEvent but not the ActiveSpeakersChangedEvent or SpeakingChangedEvent and are debugging on an actual iOS device.