Pārlūkot izejas kodu

修改了日志
和ratio的问题

cjl_macbook 6 gadi atpakaļ
vecāks
revīzija
d7ff304759

+ 17 - 16
example/lib/main.dart

@@ -7,6 +7,7 @@ import 'package:photo/photo.dart';
 import 'package:photo_manager/photo_manager.dart';
 
 void main() {
+  IjkConfig.isLog = true;
   IjkManager.initIJKPlayer();
   runApp(MyApp());
 }
@@ -203,21 +204,21 @@ class HomePageState extends State<HomePage> {
 
   _buildVolumeBar() {
     return StreamBuilder<int>(
-        stream: controller?.volumeStream,
-        initialData: controller?.volume,
-        builder: (context, snapshot) {
-          if (!snapshot.hasData) {
-            return Container();
-          }
-          var volume = snapshot.data;
-          print("volume = $volume  ${volume / 100}");
-          return Slider(
-            value: volume / 100,
-            onChanged: (double value) {
-              var targetVolume = (value * 100).toInt();
-              controller.volume = targetVolume;
-            },
-          );
-        });
+      stream: controller?.volumeStream,
+      initialData: controller?.volume,
+      builder: (context, snapshot) {
+        if (!snapshot.hasData) {
+          return Container();
+        }
+        var volume = snapshot.data;
+        return Slider(
+          value: volume / 100,
+          onChanged: (double value) {
+            var targetVolume = (value * 100).toInt();
+            controller.volume = targetVolume;
+          },
+        );
+      },
+    );
   }
 }

+ 1 - 0
lib/flutter_ijkplayer.dart

@@ -2,3 +2,4 @@ export 'src/error.dart';
 export 'src/ijkplayer.dart';
 export 'src/video_info.dart';
 export 'src/widget/controller_builder.dart' show DefaultControllerWidget;
+export 'src/config.dart';

+ 5 - 0
lib/src/config.dart

@@ -0,0 +1,5 @@
+class IjkConfig {
+
+  static bool isLog = false;
+
+}

+ 6 - 6
lib/src/controller.dart

@@ -75,8 +75,8 @@ class IjkMediaController {
       await eventChannel.init();
       volume = 100;
     } catch (e) {
-      print(e);
-      print("初始化失败");
+      LogUtils.log(e);
+      LogUtils.log("初始化失败");
     }
   }
 
@@ -175,7 +175,7 @@ class IjkMediaController {
     var info = await getVideoInfo();
     isPlaying = info.isPlaying;
     if (info.hasData) _videoInfoController?.add(info);
-    print("info = $info");
+    LogUtils.log("info = $info");
   }
 
   void _autoPlay(bool autoPlay) {
@@ -237,12 +237,12 @@ class _IjkPlugin {
   }
 
   Future<void> setNetworkDataSource({String uri}) async {
-    print("id = $textureId net uri = $uri");
+    LogUtils.log("id = $textureId net uri = $uri");
     await channel.invokeMethod("setNetworkDataSource", {"uri": uri});
   }
 
   Future<void> setAssetDataSource(String name, String package) async {
-    print("id = $textureId asset name = $name package = $package");
+    LogUtils.log("id = $textureId asset name = $name package = $package");
     var params = <String, dynamic>{
       "name": name,
     };
@@ -259,7 +259,7 @@ class _IjkPlugin {
     await channel.invokeMethod("setFileDataSource", <String, dynamic>{
       "path": path,
     });
-    print("id = $textureId file path = $path");
+    LogUtils.log("id = $textureId file path = $path");
   }
 
   Future<Map<String, dynamic>> getInfo() async {

+ 3 - 2
lib/src/ijk_event_channel.dart

@@ -1,6 +1,7 @@
 import 'dart:async';
 
 import 'package:flutter/services.dart';
+import 'package:flutter_ijkplayer/src/logutil.dart';
 import 'package:flutter_ijkplayer/src/video_info.dart';
 
 import './ijkplayer.dart';
@@ -81,13 +82,13 @@ class IJKEventChannel {
       await waitPrepare();
       ijkMediaController.play();
     } catch (e) {
-      print(e);
+      LogUtils.log(e);
     }
   }
 
   void onRotateChanged(MethodCall call) {
     var info = getInfo(call);
-    print("onRotateChanged , info = $info");
+    LogUtils.log("onRotateChanged , info = $info");
   }
 }
 

+ 1 - 0
lib/src/ijkplayer.dart

@@ -9,6 +9,7 @@ import 'package:flutter_ijkplayer/src/widget/ijkplayer_builder.dart';
 
 import './controller_builder.dart';
 import './error.dart';
+import 'logutil.dart';
 
 part './controller.dart';
 

+ 8 - 0
lib/src/logutil.dart

@@ -0,0 +1,8 @@
+import 'config.dart';
+
+class LogUtils {
+  LogUtils._();
+  static void log(Object msg) {
+    if (IjkConfig.isLog) print("ijkplayer: ${msg?.toString()}");
+  }
+}

+ 5 - 1
lib/src/video_info.dart

@@ -31,7 +31,11 @@ class VideoInfo {
   double get ratio {
     double r;
     if (width != null && height != null) {
-      r = width / height;
+      if (width == 0 || height == 0) {
+        r = 1280 / 720;
+      } else {
+        r = width / height;
+      }
     } else {
       r = 1280 / 720;
     }

+ 5 - 4
lib/src/widget/controller_builder.dart

@@ -2,6 +2,7 @@ import 'dart:async';
 
 import 'package:flutter/material.dart';
 import 'package:flutter_ijkplayer/flutter_ijkplayer.dart';
+import 'package:flutter_ijkplayer/src/logutil.dart';
 import 'package:flutter_ijkplayer/src/widget/progress_bar.dart';
 
 class DefaultControllerWidget extends StatefulWidget {
@@ -45,7 +46,7 @@ class _DefaultControllerWidgetState extends State<DefaultControllerWidget> {
   }
 
   void _onTextIdChange(int textId) {
-    print("onTextChange");
+    LogUtils.log("onTextChange");
     if (textId != null) {
       startTimer();
     } else {
@@ -72,7 +73,7 @@ class _DefaultControllerWidgetState extends State<DefaultControllerWidget> {
 
     progressTimer?.cancel();
     progressTimer = Timer.periodic(Duration(milliseconds: 400), (timer) {
-      print("will refresh info");
+      LogUtils.log("will refresh info");
       controller.refreshVideoInfo();
     });
   }
@@ -102,7 +103,7 @@ class _DefaultControllerWidgetState extends State<DefaultControllerWidget> {
   Function onDoubleTap() {
     return widget.doubleTapPlay
         ? () {
-            print("ondouble tap");
+            LogUtils.log("ondouble tap");
             controller.playOrPause();
           }
         : null;
@@ -286,7 +287,7 @@ String _getTimeText(double durationSecond) {
   var minute = (duration.inMinutes % 60).toString().padLeft(2, "0");
   var second = (duration.inSeconds % 60).toString().padLeft(2, "0");
   var text = "$minute:$second";
-//  print("$durationSecond = $text");
+//  LogUtils.log("$durationSecond = $text");
   return text;
 }
 

+ 4 - 1
lib/src/widget/progress_bar.dart

@@ -20,7 +20,7 @@ class ProgressBar extends StatelessWidget {
 
   @override
   Widget build(BuildContext context) {
-    if (max == null || current == null) return _buildEmpty();
+    if (max == null || current == null || max == 0) return _buildEmpty();
 
     var left = current / max;
     var mid = (buffered ?? 0) / max - left;
@@ -54,6 +54,9 @@ class ProgressBar extends StatelessWidget {
         flex == double.negativeInfinity) {
       flex = 0;
     }
+    if (flex == 0) {
+      return Container();
+    }
     return Expanded(
       flex: (flex * 1000).toInt(),
       child: Container(