Browse Source

暂停其他的控制器方法和逻辑

cjl_macbook 6 years ago
parent
commit
77609d1c50

+ 3 - 0
TODOLIST.md

@@ -11,6 +11,9 @@
   - [x] 释放资源
   - [x] 控制音量
   - [x] 控制系统音量
+    - [ ] 修复iOS系统音量与逻辑相反的问题
+    - [ ] 修复iOS系统音量出现系统弹窗的问题
+    - [ ] 修复iOS系统音量出现时明显卡顿的问题
   - [x] 获取视频信息
     - [x] 宽高
     - [x] 当前播放进度

+ 12 - 0
lib/src/config.dart

@@ -2,4 +2,16 @@
 class IjkConfig {
   /// when [isLog] is true, will print log in console
   static bool isLog = false;
+
+  static LogLevel level = LogLevel.debug;
+
+  static String logTag = "IjkPlayer";
+}
+
+enum LogLevel {
+  verbose,
+  debug,
+  info,
+  warning,
+  error,
 }

+ 6 - 6
lib/src/controller.dart

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

+ 2 - 1
lib/src/engine/ijk_controller_manager.dart

@@ -1,4 +1,5 @@
 import 'package:flutter_ijkplayer/src/ijkplayer.dart';
+import 'package:flutter_ijkplayer/src/logutil.dart';
 
 class IjkMediaPlayerManager {
   final ijkPlayerList = <IjkMediaController>[];
@@ -23,7 +24,7 @@ class IjkMediaPlayerManager {
   Future<void> pauseOther(IjkMediaController ijkMediaController) async {
     for (var ctl in this.ijkPlayerList) {
       if (ctl != ijkMediaController) {
-        print("ctl ${ctl.textureId} will pause");
+        LogUtils.verbose("ctl ${ctl.textureId} will pause");
         ctl.pause();
       }
     }

+ 3 - 3
lib/src/ijk_event_channel.dart

@@ -77,7 +77,7 @@ class _IJKEventChannel {
       await waitPrepare();
       ijkMediaController.play();
     } catch (e) {
-      LogUtils.log(e);
+      LogUtils.verbose(e);
     }
   }
 
@@ -86,13 +86,13 @@ class _IJKEventChannel {
       await waitPrepare();
       ijkMediaController.pause();
     } catch (e) {
-      LogUtils.log(e);
+      LogUtils.verbose(e);
     }
   }
 
   void onRotateChanged(MethodCall call) {
     var info = getInfo(call);
-    LogUtils.log("onRotateChanged , info = $info");
+    LogUtils.verbose("onRotateChanged , info = $info");
   }
 }
 

+ 36 - 2
lib/src/logutil.dart

@@ -3,7 +3,41 @@ import 'config.dart';
 /// IJKPlayer Log Util
 class LogUtils {
   LogUtils._();
-  static void log(Object msg) {
-    if (IjkConfig.isLog) print("ijkplayer: ${msg?.toString()}");
+
+  static void verbose(Object msg) {
+    log("${msg?.toString()}", LogLevel.verbose);
+  }
+
+  static void debug(Object msg) {
+    log("${msg?.toString()}", LogLevel.debug);
+  }
+
+  static void info(Object msg) {
+    log("${msg?.toString()}", LogLevel.info);
+  }
+
+  static void warning(Object msg) {
+    log("${msg?.toString()}", LogLevel.warning);
+  }
+
+  static void error(Object msg) {
+    log("${msg?.toString()}", LogLevel.error);
+  }
+
+  static void log(Object msg, LogLevel level) {
+    if (level == null) {
+      return;
+    }
+    if (!IjkConfig.isLog) {
+      return;
+    }
+
+    if (level.index < IjkConfig.level.index) {
+      return;
+    }
+
+    String levelString = level.toString()[0];
+
+    print("($levelString)${IjkConfig.logTag}:${msg.toString()}");
   }
 }

+ 6 - 4
lib/src/widget/controller_widget_builder.dart

@@ -82,7 +82,7 @@ class _DefaultControllerWidgetState extends State<DefaultControllerWidget>
   }
 
   void _onTextIdChange(int textId) {
-    LogUtils.log("onTextChange");
+    LogUtils.verbose("onTextChange");
     if (textId != null) {
       startTimer();
     } else {
@@ -109,7 +109,7 @@ class _DefaultControllerWidgetState extends State<DefaultControllerWidget>
 
     progressTimer?.cancel();
     progressTimer = Timer.periodic(Duration(milliseconds: 400), (timer) {
-      LogUtils.log("will refresh info");
+      LogUtils.verbose("will refresh info");
       controller.refreshVideoInfo();
     });
   }
@@ -210,7 +210,7 @@ class _DefaultControllerWidgetState extends State<DefaultControllerWidget>
   Function onDoubleTap() {
     return widget.doubleTapPlay
         ? () {
-            LogUtils.log("ondouble tap");
+            LogUtils.verbose("ondouble tap");
             controller.playOrPause();
           }
         : null;
@@ -290,7 +290,9 @@ class _DefaultControllerWidgetState extends State<DefaultControllerWidget>
       ],
     );
 
-    showTooltip(createTooltipWidgetWrapper(column));
+    if (widget.volumeType != VolumeType.system) {
+      showTooltip(createTooltipWidgetWrapper(column));
+    }
   }
 
   void _onVerticalDragEnd(DragEndDetails details) {