import 'dart:io'; import 'package:device_info_plus/device_info_plus.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/services.dart'; //横屏 Future landScape() async { dynamic document; try { if (kIsWeb) { await document.documentElement?.requestFullscreen(); } else if (Platform.isAndroid || Platform.isIOS) { await SystemChrome.setEnabledSystemUIMode( SystemUiMode.immersiveSticky, overlays: [], ); await SystemChrome.setPreferredOrientations( [ DeviceOrientation.landscapeLeft, DeviceOrientation.landscapeRight, ], ); } else if (Platform.isMacOS || Platform.isWindows || Platform.isLinux) { await const MethodChannel('com.alexmercerind/media_kit_video') .invokeMethod( 'Utils.EnterNativeFullscreen', ); } } catch (exception, stacktrace) { debugPrint(exception.toString()); debugPrint(stacktrace.toString()); } } //竖屏 Future verticalScreen() async { await SystemChrome.setPreferredOrientations([ DeviceOrientation.portraitUp, ]); } Future enterFullScreen() async { await SystemChrome.setEnabledSystemUIMode( SystemUiMode.immersiveSticky, ); } //退出全屏显示 Future exitFullScreen() async { dynamic document; late SystemUiMode mode = SystemUiMode.edgeToEdge; try { if (kIsWeb) { document.exitFullscreen(); } else if (Platform.isAndroid || Platform.isIOS) { if (Platform.isAndroid && (await DeviceInfoPlugin().androidInfo).version.sdkInt < 29) { mode = SystemUiMode.manual; } await SystemChrome.setEnabledSystemUIMode( mode, overlays: SystemUiOverlay.values, ); await SystemChrome.setPreferredOrientations([]); } else if (Platform.isMacOS || Platform.isWindows || Platform.isLinux) { await const MethodChannel('com.alexmercerind/media_kit_video') .invokeMethod( 'Utils.ExitNativeFullscreen', ); } } catch (exception, stacktrace) { debugPrint(exception.toString()); debugPrint(stacktrace.toString()); } }