Fixing video player not play on ios

This commit is contained in:
Alex Tran 2022-02-05 21:23:34 -06:00
parent f53b82de20
commit c564bab4e8
4 changed files with 37 additions and 16 deletions

View file

@ -41,9 +41,22 @@
<string>UIInterfaceOrientationLandscapeLeft</string> <string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string> <string>UIInterfaceOrientationLandscapeRight</string>
</array> </array>
<key>UIUserInterfaceStyle</key>
<string>Light</string>
<key>UIViewControllerBasedStatusBarAppearance</key> <key>UIViewControllerBasedStatusBarAppearance</key>
<true /> <true />
<key>NSPhotoLibraryUsageDescription</key> <key>NSPhotoLibraryUsageDescription</key>
<string>App need your agree, can visit your album</string> <string>We need to manage backup your photos album</string>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
</dict> </dict>
</plist> </plist>

View file

@ -1,4 +1,5 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:hive_flutter/hive_flutter.dart'; import 'package:hive_flutter/hive_flutter.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:immich_mobile/routing/router.dart'; import 'package:immich_mobile/routing/router.dart';
@ -12,6 +13,12 @@ void main() async {
// Hive.registerAdapter(ImmichBackUpAssetAdapter()); // Hive.registerAdapter(ImmichBackUpAssetAdapter());
// Hive.deleteBoxFromDisk(hiveImmichBox); // Hive.deleteBoxFromDisk(hiveImmichBox);
SystemChrome.setSystemUIOverlayStyle(
const SystemUiOverlayStyle(
statusBarIconBrightness: Brightness.light,
),
);
runApp(const ProviderScope(child: ImmichApp())); runApp(const ProviderScope(child: ImmichApp()));
} }
@ -69,6 +76,7 @@ class _ImmichAppState extends ConsumerState<ImmichApp> with WidgetsBindingObserv
title: 'Immich', title: 'Immich',
debugShowCheckedModeBanner: false, debugShowCheckedModeBanner: false,
theme: ThemeData( theme: ThemeData(
brightness: Brightness.light,
primarySwatch: Colors.indigo, primarySwatch: Colors.indigo,
textTheme: GoogleFonts.workSansTextTheme( textTheme: GoogleFonts.workSansTextTheme(
Theme.of(context).textTheme.apply(fontSizeFactor: 1.0), Theme.of(context).textTheme.apply(fontSizeFactor: 1.0),
@ -79,6 +87,7 @@ class _ImmichAppState extends ConsumerState<ImmichApp> with WidgetsBindingObserv
foregroundColor: Colors.indigo, foregroundColor: Colors.indigo,
elevation: 1, elevation: 1,
centerTitle: true, centerTitle: true,
systemOverlayStyle: SystemUiOverlayStyle.dark,
), ),
), ),
routeInformationParser: _immichRouter.defaultRouteParser(), routeInformationParser: _immichRouter.defaultRouteParser(),

View file

@ -1,6 +1,5 @@
import 'package:auto_route/auto_route.dart'; import 'package:auto_route/auto_route.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:google_fonts/google_fonts.dart'; import 'package:google_fonts/google_fonts.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:immich_mobile/modules/home/providers/asset.provider.dart'; import 'package:immich_mobile/modules/home/providers/asset.provider.dart';
@ -100,10 +99,6 @@ class ImmichSliverAppBar extends ConsumerWidget {
], ],
), ),
], ],
systemOverlayStyle: const SystemUiOverlayStyle(
statusBarColor: Colors.white,
statusBarBrightness: Brightness.dark,
statusBarIconBrightness: Brightness.light),
), ),
); );
} }

View file

@ -55,14 +55,17 @@ class _VideoThumbnailPlayerState extends State<VideoThumbnailPlayer> {
} }
Future<void> initializePlayer() async { Future<void> initializePlayer() async {
try {
videoPlayerController = videoPlayerController =
VideoPlayerController.network(widget.url, httpHeaders: {"Authorization": "Bearer ${widget.jwtToken}"}); VideoPlayerController.network(widget.url, httpHeaders: {"Authorization": "Bearer ${widget.jwtToken}"});
await Future.wait([ await videoPlayerController.initialize();
videoPlayerController.initialize(),
]);
_createChewieController(); _createChewieController();
setState(() {}); setState(() {});
} catch (e) {
debugPrint("ERROR initialize video player");
print(e);
}
} }
_createChewieController() { _createChewieController() {
@ -80,7 +83,7 @@ class _VideoThumbnailPlayerState extends State<VideoThumbnailPlayer> {
super.dispose(); super.dispose();
videoPlayerController.pause(); videoPlayerController.pause();
videoPlayerController.dispose(); videoPlayerController.dispose();
chewieController!.dispose(); chewieController?.dispose();
} }
@override @override
@ -96,6 +99,7 @@ class _VideoThumbnailPlayerState extends State<VideoThumbnailPlayer> {
height: 75, height: 75,
child: CircularProgressIndicator.adaptive( child: CircularProgressIndicator.adaptive(
strokeWidth: 2, strokeWidth: 2,
)); ),
);
} }
} }