diff --git a/lib/ui/screens/call_screen.dart b/lib/ui/screens/call_screen.dart index 0571e8d..0dd4d45 100644 --- a/lib/ui/screens/call_screen.dart +++ b/lib/ui/screens/call_screen.dart @@ -20,7 +20,7 @@ import 'package:flutter_webrtc/webrtc.dart'; /// /// @author Pierre Hubert -enum _PopupMenuOption { STOP_STREAMING } +enum _PopupMenuOption { STOP_STREAMING, SWITCH_CAMERA } class CallScreen extends StatefulWidget { final int convID; @@ -393,6 +393,11 @@ class _CallScreenState extends SafeState { /// Handles menu selection void _handleSelectedMenuOption(_PopupMenuOption option) async { switch (option) { + // Switch camera + case _PopupMenuOption.SWITCH_CAMERA: + await _localStream.getVideoTracks()[0].switchCamera(); + break; + // Stop streaming case _PopupMenuOption.STOP_STREAMING: await _stopStreaming(); @@ -534,6 +539,12 @@ class _CallScreenState extends SafeState { Expanded( child: PopupMenuButton<_PopupMenuOption>( itemBuilder: (c) => [ + // Switch camera + PopupMenuItem( + enabled: isStreamingVideo, + child: Text(tr("Switch camera")), + value: _PopupMenuOption.SWITCH_CAMERA), + // Interrupt streaming PopupMenuItem( child: Text(tr("Stop streaming")),