소스 검색

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

cjl_macbook 6 년 전
부모
커밋
88c20314dd
3개의 변경된 파일28개의 추가작업 그리고 6개의 파일을 삭제
  1. 17 6
      example/lib/page/controller_stream_use.dart
  2. 1 0
      lib/src/controller/controller.dart
  3. 10 0
      lib/src/widget/ijk_status_widget.dart

+ 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) {