11import 'dart:io' ;
22import 'package:flutter/material.dart' ;
3- import 'package:fijkplayer/fijkplayer.dart' ;
43
54import 'package:chewie/chewie.dart' ;
65import 'package:video_player/video_player.dart' ;
76
87import 'package:maple_file/app/i18n.dart' ;
9- import 'package:maple_file/common/utils/util.dart' ;
108
119import 'source.dart' ;
1210
13- abstract class VideoPreviewController extends PreviewSourceListController {
14- PreviewSourceImpl ? get source;
15-
16- Future <void > play ();
17- Future <void > pause ();
18- Future <void > resume ();
19- // Future<void> setSource(PreviewSourceImpl s, {bool autoPlay = false});
20-
21- Widget playerWidget (BuildContext context);
22- }
23-
24- class MobileVideoPreviewController extends VideoPreviewController {
25- final FijkPlayer _player;
26-
27- PreviewSourceImpl ? _source;
28-
29- MobileVideoPreviewController ({
30- PreviewSourceImpl ? source,
31- bool autoPlay = false ,
32- }) : _source = source,
33- _player = FijkPlayer () {
34- if (source != null ) {
35- setSource (source, autoPlay: autoPlay);
36- }
37- }
38-
39- FijkPlayer get player => _player;
40-
41- @override
42- PreviewSourceImpl ? get source => _source;
43-
44- @override
45- Future <void > play () {
46- return _player.start ();
47- }
48-
49- @override
50- Future <void > pause () async {
51- await _player.pause ();
52- }
53-
54- @override
55- Future <void > resume () async {
56- await _player.start ();
57- }
58-
59- @override
60- Future <void > setSource (PreviewSourceImpl s, {bool autoPlay = false }) async {
61- _source = s;
62-
63- await player.reset ();
64-
65- switch (s.type) {
66- case SourceType .file:
67- return _player.setDataSource ("file://${s .path }" , autoPlay: autoPlay);
68- case SourceType .asset:
69- return _player.setDataSource ("asset:///${s .path }" , autoPlay: autoPlay);
70- case SourceType .network:
71- return _player.setDataSource (s.path, autoPlay: autoPlay);
72- }
73- }
74-
75- @override
76- void dispose () {
77- _player.release ();
78- // _player.dispose();
79- super .dispose ();
80- }
81-
82- @override
83- Widget playerWidget (BuildContext context) {
84- return FijkView (
85- fit: FijkFit .cover,
86- player: _player,
87- );
88- }
89- }
90-
91- class DesktopVideoPreviewController extends VideoPreviewController {
11+ class VideoPreviewController extends PreviewSourceListController {
9212 late VideoPlayerController _controller;
9313
9414 ChewieController ? _chewieController;
9515 PreviewSourceImpl ? _source;
9616
9717 bool _initialized = false ;
9818
99- DesktopVideoPreviewController ({
19+ VideoPreviewController ({
10020 PreviewSourceImpl ? source,
10121 bool autoPlay = false ,
10222 }) : _source = source {
@@ -118,20 +38,16 @@ class DesktopVideoPreviewController extends VideoPreviewController {
11838
11939 VideoPlayerController get player => _controller;
12040
121- @override
12241 PreviewSourceImpl ? get source => _source;
12342
124- @override
12543 Future <void > play () async {
12644 return _controller.play ();
12745 }
12846
129- @override
13047 Future <void > pause () {
13148 return _controller.pause ();
13249 }
13350
134- @override
13551 Future <void > resume () {
13652 return _controller.play ();
13753 }
@@ -178,7 +94,6 @@ class DesktopVideoPreviewController extends VideoPreviewController {
17894 super .dispose ();
17995 }
18096
181- @override
18297 Widget playerWidget (BuildContext context) {
18398 return Chewie (
18499 controller: chewie,
@@ -209,10 +124,7 @@ class _VideoPreviewState extends State<VideoPreview> {
209124 void initState () {
210125 super .initState ();
211126
212- _controller = widget.controller ??
213- (Util .isDesktop
214- ? DesktopVideoPreviewController ()
215- : MobileVideoPreviewController ());
127+ _controller = widget.controller ?? VideoPreviewController ();
216128 _controller.setSource (widget.source, autoPlay: widget.autoPlay);
217129
218130 _controller.addListener (() {
@@ -268,10 +180,7 @@ class _VideoListPreviewState extends State<VideoListPreview> {
268180
269181 _index = widget.index;
270182
271- _controller = widget.controller ??
272- (Util .isDesktop
273- ? DesktopVideoPreviewController ()
274- : MobileVideoPreviewController ());
183+ _controller = widget.controller ?? VideoPreviewController ();
275184 }
276185
277186 @override
0 commit comments