diff --git a/lib/view/video.dart b/lib/view/video.dart index cde87c0..ed785cd 100644 --- a/lib/view/video.dart +++ b/lib/view/video.dart @@ -1,10 +1,8 @@ import 'dart:async'; -import 'package:fijkplayer/fijkplayer.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:video_player/video_player.dart'; -import 'dart:math'; import 'package:wakelock/wakelock.dart'; @@ -18,7 +16,6 @@ class CustomVideoPlayer extends StatefulWidget { } class _CustomVideoPlayerState extends State { - FijkPlayer? player; VideoPlayerController? _controller; Timer? _timer; @@ -28,7 +25,8 @@ class _CustomVideoPlayerState extends State { void initState() { super.initState(); WidgetsFlutterBinding.ensureInitialized(); - SystemChrome.setEnabledSystemUIMode(SystemUiMode.immersiveSticky, overlays: [SystemUiOverlay.bottom]); + SystemChrome.setEnabledSystemUIMode(SystemUiMode.immersiveSticky, + overlays: [SystemUiOverlay.bottom]); SystemChrome.setPreferredOrientations( [DeviceOrientation.landscapeLeft, DeviceOrientation.landscapeRight]); Wakelock.enable(); @@ -46,18 +44,6 @@ class _CustomVideoPlayerState extends State { }); } - Future initFijkPlayer() async { - player = FijkPlayer(); - await player!.setDataSource(widget.url, autoPlay: true); - bool init = false; - player?.addListener(() { - if (player!.value.videoRenderStart && !init) { - init = true; - player!.enterFullScreen(); - } - }); - } - void onKey(RawKeyEvent event) { if (event is RawKeyUpEvent) return; RawKeyEventDataAndroid e = event.data as RawKeyEventDataAndroid; @@ -82,105 +68,42 @@ class _CustomVideoPlayerState extends State { } } - void fijkOnKey(RawKeyEvent event) { - if (event is RawKeyUpEvent) return; - switch (event.character) { - case ' ': - if (player?.state == FijkState.paused) { - player?.start(); - } else { - player?.pause(); - } - break; - default: - switch ((event.data as RawKeyEventDataAndroid).keyCode) { - case 22: - // player!.pause().then((value) { - int pos = min(player!.value.duration.inMilliseconds, - player!.currentPos.inMilliseconds + 30000); - player!.seekTo(pos).then((value) { - if (_timer != null) { - _timer!.cancel(); - } - _timer = Timer(const Duration(milliseconds: 500), () { - player!.start(); - _timer = null; - }); - }); - // }); - break; - } - return; - } - } - @override Widget build(BuildContext context) { return Scaffold( - // appBar: AppBar( - // toolbarHeight: 35, - // ), - backgroundColor: Colors.black, - body: player == null - ? PopScope( - onPopInvoked: (val) { - if (!val) { - return; - } - _controller!.pause(); - }, - child: Center( - child: _controller!.value.isInitialized - ? AspectRatio( - aspectRatio: _controller!.value.aspectRatio, - child: RawKeyboardListener( - onKey: onKey, - autofocus: true, - focusNode: FocusNode(), - child: VideoPlayer(_controller!), - ), - ) - : Container(), - ), - ) - : Container( - alignment: Alignment.center, - child: RawKeyboardListener( - onKey: fijkOnKey, - focusNode: FocusNode(), - autofocus: true, - child: FijkView( - player: player!, - panelBuilder: (FijkPlayer player, FijkData data, - BuildContext context, Size viewSize, Rect texturePos) { - return RawKeyboardListener( - onKey: fijkOnKey, - focusNode: FocusNode(), - autofocus: true, - child: PopScope( - onPopInvoked: (val) { - if (!val) { - return; - } - this.player?.exitFullScreen(); - }, - child: Stack(children: [ - defaultFijkPanelBuilder( - player, data, context, viewSize, texturePos), - ]), - )); - }, - ), - )), - ); + // appBar: AppBar( + // toolbarHeight: 35, + // ), + backgroundColor: Colors.black, + body: PopScope( + onPopInvoked: (val) { + if (!val) { + return; + } + _controller!.pause(); + }, + child: Center( + child: _controller!.value.isInitialized + ? AspectRatio( + aspectRatio: _controller!.value.aspectRatio, + child: RawKeyboardListener( + onKey: onKey, + autofocus: true, + focusNode: FocusNode(), + child: VideoPlayer(_controller!), + ), + ) + : Container(), + ), + )); } @override void dispose() { Wakelock.disable(); - SystemChrome.setEnabledSystemUIMode(SystemUiMode.immersiveSticky, overlays: [SystemUiOverlay.top]); + SystemChrome.setEnabledSystemUIMode(SystemUiMode.immersiveSticky, + overlays: [SystemUiOverlay.top]); SystemChrome.setPreferredOrientations([]); - player?.stop().then((value) => player?.dispose()); _controller?.dispose(); super.dispose(); }