open static method

Future<void> open(
  1. BuildContext context, {
  2. required UMediaController controller,
  3. UVideoSettings? settings,
  4. String? title,
  5. List<UVideoMarker> markers = const <UVideoMarker>[],
  6. UMediaNotesController? notes,
  7. UVideoGestureConfig gestures = const UVideoGestureConfig(),
  8. Color? accentColor,
  9. Widget thumbnailBuilder(
    1. BuildContext context,
    2. Duration position
    )?,
  10. UDocWatermark? watermark,
  11. Duration seekStep = const Duration(seconds: 10),
  12. bool forceLandscape = true,
})

Opens controller full screen. UVideoFullscreen.open(context, controller: c)

Implementation

static Future<void> open(
  BuildContext context, {
  required UMediaController controller,
  UVideoSettings? settings,
  String? title,
  List<UVideoMarker> markers = const <UVideoMarker>[],
  UMediaNotesController? notes,
  UVideoGestureConfig gestures = const UVideoGestureConfig(),
  Color? accentColor,
  Widget Function(BuildContext context, Duration position)? thumbnailBuilder,
  UDocWatermark? watermark,
  Duration seekStep = const Duration(seconds: 10),
  bool forceLandscape = true,
}) async {
  if (forceLandscape) {
    await SystemChrome.setPreferredOrientations(<DeviceOrientation>[DeviceOrientation.landscapeLeft, DeviceOrientation.landscapeRight]);
  }
  await SystemChrome.setEnabledSystemUIMode(SystemUiMode.immersiveSticky);

  if (!context.mounted) return;
  await Navigator.of(context).push<void>(
    PageRouteBuilder<void>(
      transitionDuration: const Duration(milliseconds: 250),
      pageBuilder: (BuildContext context, Animation<double> animation, Animation<double> secondary) => Scaffold(
        backgroundColor: const Color(0xFF000000),
        body: UVideo(
          controller: controller,
          settings: settings,
          title: title,
          markers: markers,
          notes: notes,
          gestures: gestures,
          accentColor: accentColor,
          borderRadius: 0,
          isFullscreen: true,
          watermark: watermark,
          seekStep: seekStep,
          thumbnailBuilder: thumbnailBuilder,
          onDismiss: () => Navigator.of(context).pop(),
        ),
      ),
      transitionsBuilder: (BuildContext context, Animation<double> animation, Animation<double> secondary, Widget child) => FadeTransition(opacity: animation, child: child),
    ),
  );

  await SystemChrome.setPreferredOrientations(DeviceOrientation.values);
  await SystemChrome.setEnabledSystemUIMode(SystemUiMode.edgeToEdge);
}