Browse Source

Merge branch 'master' of http://git.ius.plus/Project-Vital/VitalApp

loki.wu 10 months ago
parent
commit
1b75881339

+ 6 - 0
lib/helper/sonopost_preview_helper.dart

@@ -14,6 +14,12 @@ class ShellSonopostPlayController {
 
   static final bufferFragmentReceived = FEventHandler<Uint8List>();
 
+  ///截一张图
+  static final onCaptureFrame = FEventHandler<bool>();
+
+  ///录制,bool值代表开始or结束
+  static final onRecord = FEventHandler<bool>();
+
   ShellSonopostPlayController({
     this.width = 1280,
     this.height = 720,

+ 20 - 0
lib/js_platform/handlers/update_sonopost_preview.dart

@@ -11,3 +11,23 @@ class UpdateSonopostPreviewHandler extends MethodHandlerBase {
     ShellSonopostPlayController.setPreviewImageData(args[0]);
   }
 }
+
+class ScreenshotHandler extends MethodHandlerBase {
+  ScreenshotHandler() : super(TargetMethodName.Screenshot);
+  @override
+  void execute(List<String> args) {
+    ShellSonopostPlayController.onCaptureFrame.emit(this, true);
+  }
+}
+
+class RecordHandler extends MethodHandlerBase {
+  RecordHandler() : super(TargetMethodName.Record);
+  @override
+  void execute(List<String> args) {
+    bool isStart = false;
+    if (args[0] == "true" || args[0] == "True") {
+      isStart = true;
+    }
+    ShellSonopostPlayController.onRecord.emit(this, isStart);
+  }
+}

+ 2 - 0
lib/js_platform/listener.dart

@@ -23,6 +23,8 @@ class JsPlatformListener {
     //IDCardReader
     _register(OpenIDCardPageHandler());
     _register(UpdateSonopostPreviewHandler());
+    _register(ScreenshotHandler());
+    _register(RecordHandler());
   }
 
   void _handleMessage(String method, String arguments) {

+ 10 - 0
lib/js_platform/methods.dart

@@ -4,4 +4,14 @@ enum TargetMethodName {
 
   ///更新魔盒图像预览
   UpdateSonopostPreview,
+
+  /// <summary>
+  /// 截图
+  /// </summary>
+  Screenshot,
+
+  /// <summary>
+  /// 预览
+  /// </summary>
+  Record,
 }

+ 20 - 0
lib/pages/consultation_record_view/widgets/capture_page.dart

@@ -23,12 +23,32 @@ class _CapturePageState extends State<CapturePage> {
   void initState() {
     super.initState();
     rpc.platform.startPreviewSonopost();
+    ShellSonopostPlayController.onCaptureFrame.addListener(onCaptureFrame);
+    ShellSonopostPlayController.onRecord.addListener(onRecord);
     controller.play();
   }
 
+  void onCaptureFrame(Object sender, bool e) {
+    PromptBox.toast('采集成功');
+  }
+
+  void onRecord(Object sender, bool e) {
+    if (isRecording == e) {
+      return;
+    }
+    if (isRecording) {
+      PromptBox.toast('采集成功');
+    }
+    setState(() {
+      isRecording = e;
+    });
+  }
+
   @override
   void dispose() {
     super.dispose();
+    ShellSonopostPlayController.onCaptureFrame.removeListener(onCaptureFrame);
+    ShellSonopostPlayController.onRecord.removeListener(onRecord);
     _timer?.cancel();
     controller.stop();
     rpc.platform.stopPreviewSonopost();