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. UVideoGestureConfig gestures = const UVideoGestureConfig(),
  7. Color? accentColor,
  8. Widget thumbnailBuilder(
    1. BuildContext context,
    2. Duration position
    )?,
  9. bool forceLandscape = true,
})

Implementation

static Future<void> open(
  BuildContext context, {
  required UMediaController controller,
  UVideoSettings? settings,
  String? title,
  List<UVideoMarker> markers = const <UVideoMarker>[],
  UVideoGestureConfig gestures = const UVideoGestureConfig(),
  Color? accentColor,
  Widget Function(BuildContext context, Duration position)? thumbnailBuilder,
  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,
          gestures: gestures,
          accentColor: accentColor,
          borderRadius: 0,
          isFullscreen: true,
          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);
}