Browse Source

Merge pull request #21 from CaiJingLong/dev

Update Ijk Status and update example
Caijinglong 6 years ago
parent
commit
34006e6871

+ 2 - 1
.gitignore

@@ -5,4 +5,5 @@
 .pub/
 .pub/
 
 
 build/
 build/
-.idea
+.idea
+doc/

+ 2 - 2
example/lib/i18n/cn.dart

@@ -58,10 +58,10 @@ class _I18nZh extends I18n {
   String get playFinishToast => "播放完毕";
   String get playFinishToast => "播放完毕";
 
 
   @override
   @override
-  String get screenshotTitle => "截取视频画面(开发中)";
+  String get screenshotTitle => "截取视频画面";
 
 
   @override
   @override
-  String get overlayPageTitle => "悬浮窗中显示";
+  String get overlayPageTitle => "悬浮窗中显示(开发中)";
 
 
   @override
   @override
   String get ijkStatusTitle => "IjkStatus的使用";
   String get ijkStatusTitle => "IjkStatus的使用";

+ 2 - 2
example/lib/i18n/en.dart

@@ -57,10 +57,10 @@ class _I18nEn extends I18n {
   String get playFinishToast => "Play video finish";
   String get playFinishToast => "Play video finish";
 
 
   @override
   @override
-  String get screenshotTitle => "screenshot video frame(experiment)";
+  String get screenshotTitle => "screenshot video frame";
 
 
   @override
   @override
-  String get overlayPageTitle => "In overlay";
+  String get overlayPageTitle => "In overlay(Developing)";
 
 
   @override
   @override
   String get ijkStatusTitle => "Usage of IjkStatus";
   String get ijkStatusTitle => "Usage of IjkStatus";

+ 17 - 6
example/lib/page/controller_stream_use.dart

@@ -77,12 +77,23 @@ class _ControllerStreamUsagePageState extends State<ControllerStreamUsagePage> {
 
 
   Widget buildAudioVolume() {
   Widget buildAudioVolume() {
     return Container(
     return Container(
-      child: StreamBuilder<int>(
-        builder: (BuildContext context, snapshot) {
-          return buildText("volume: ${snapshot.data}");
-        },
-        stream: controller.volumeStream,
-        initialData: controller.volume,
+      child: Column(
+        children: <Widget>[
+          StreamBuilder<int>(
+            builder: (BuildContext context, snapshot) {
+              return buildText("volume: ${snapshot.data}");
+            },
+            stream: controller.volumeStream,
+            initialData: controller.volume,
+          ),
+          StreamBuilder<IjkStatus>(
+            builder: (ctx,snapshot){
+              return buildText("status : ${snapshot.data}");
+            },
+            stream: controller.ijkStatusStream,
+            initialData: controller.ijkStatus,
+          ),
+        ],
       ),
       ),
     );
     );
   }
   }

+ 1 - 1
example/lib/page/in_overlay_page.dart

@@ -92,7 +92,7 @@ class OverlayWidget extends StatefulWidget {
   _OverlayWidgetState createState() => _OverlayWidgetState();
   _OverlayWidgetState createState() => _OverlayWidgetState();
 }
 }
 
 
-const double _overlayWidth = 100;
+const double _overlayWidth = 200;
 
 
 class _OverlayWidgetState extends State<OverlayWidget> {
 class _OverlayWidgetState extends State<OverlayWidget> {
   double dx = 0;
   double dx = 0;

+ 1 - 0
lib/src/controller/controller.dart

@@ -301,6 +301,7 @@ class IjkMediaController with IjkMediaControllerMixin {
   /// [target] unit is second
   /// [target] unit is second
   Future<void> seekTo(double target) async {
   Future<void> seekTo(double target) async {
     await _plugin?.seekTo(target);
     await _plugin?.seekTo(target);
+    _ijkStatus = IjkStatus.pause;
     refreshVideoInfo();
     refreshVideoInfo();
   }
   }
 
 

+ 10 - 0
lib/src/widget/ijk_status_widget.dart

@@ -44,6 +44,9 @@ class IjkStatusWidget extends StatelessWidget {
     if (status == IjkStatus.preparing) {
     if (status == IjkStatus.preparing) {
       return _buildProgressWidget(context);
       return _buildProgressWidget(context);
     }
     }
+    if (status == IjkStatus.prepared) {
+      return _buildPreparedWidget(context, controller);
+    }
     if (status == IjkStatus.error) {
     if (status == IjkStatus.error) {
       return _buildFailWidget(context);
       return _buildFailWidget(context);
     }
     }
@@ -58,6 +61,13 @@ class IjkStatusWidget extends StatelessWidget {
     }
     }
     return Container();
     return Container();
   }
   }
+
+  static Widget _buildPreparedWidget(
+    BuildContext context,
+    IjkMediaController controller,
+  ) {
+    return _buildCenterIconButton(Icons.play_arrow, controller.play);
+  }
 }
 }
 
 
 Widget _buildNothing(BuildContext context) {
 Widget _buildNothing(BuildContext context) {