import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:flutter_dotenv/flutter_dotenv.dart'; import 'package:get_storage/get_storage.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'core/bindings/initial_binding.dart'; import 'core/routes/app_pages.dart'; import 'core/routes/app_routes.dart'; import 'dart:io'; import 'package:window_size/window_size.dart'; import 'app/translations/app_translations.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); // 设置窗口大小(仅在 macOS 下生效) if (Platform.isMacOS) { const double width = 375.0; const double height = 812.0; setWindowTitle('Deep Voice'); setWindowMinSize(const Size(width, height)); setWindowMaxSize(const Size(width, height)); // 居中显示窗口 getCurrentScreen().then((screen) { if (screen != null) { final screenFrame = screen.frame; final windowFrame = Rect.fromCenter( center: screenFrame.center, width: width, height: height, ); setWindowFrame(windowFrame); } }); } // 初始化环境变量 await dotenv.load(); // 初始化存储 await GetStorage.init(); // AudioService 将在 AudioServiceManager 中初始化 // 不再需要在这里调用 AudioService.init runApp(const MainApp()); } class MainApp extends StatelessWidget { const MainApp({super.key}); @override Widget build(BuildContext context) { return ScreenUtilInit( designSize: const Size(375, 812), // 设计稿尺寸 minTextAdapt: true, splitScreenMode: true, builder: (context, child) { return GetMaterialApp( title: 'Deep Voice', theme: ThemeData( primarySwatch: Colors.blue, visualDensity: VisualDensity.adaptivePlatformDensity, ), initialBinding: InitialBinding(), initialRoute: Routes.home, getPages: AppPages.pages, debugShowCheckedModeBanner: false, translations: AppTranslations(), locale: const Locale('zh', 'CN'), fallbackLocale: const Locale('en', 'US'), ); } ); } }