浏览代码

After seek, status will to pause.
Add example will stream.

cjl_macbook 6 年之前
父节点
当前提交
88c20314dd

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

@@ -77,12 +77,23 @@ class _ControllerStreamUsagePageState extends State<ControllerStreamUsagePage> {
 
   Widget buildAudioVolume() {
     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 - 0
lib/src/controller/controller.dart

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

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

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