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