瀏覽代碼

define vid_channel stuct

melon.yin 2 年之前
父節點
當前提交
f2ad240edf

+ 1 - 0
lib/async_vid/vid_data.dart

@@ -54,6 +54,7 @@ abstract class AsyncVidImageDataBase {
     createReader(url, downloadCallback: downloadCallback);
   }
 
+  @protected
   AsyncVidDataReaderBase createReader(String url,
       {DownloadCallback? downloadCallback});
 

+ 28 - 0
lib/data_channel/channel.dart

@@ -0,0 +1,28 @@
+import 'package:fis_vid/async_vid/vid_data.dart';
+import 'package:flutter/foundation.dart';
+import 'package:vid/us/vid_us_image.dart';
+
+abstract class VidDataChannel {
+  late final AsyncVidImageDataBase _source;
+
+  /// 开始加载数据
+  Future<bool> load() async {
+    try {
+      _source = await buildSource();
+      await _source.initialize();
+      return true;
+    } catch (e) {
+      return false;
+    }
+  }
+
+  /// 获取指定帧
+  ///
+  /// [index] 帧索引
+  Future<VidUsImage> getImage(int index) async {
+    return _source.getImage(index);
+  }
+
+  @protected
+  Future<AsyncVidImageDataBase> buildSource();
+}

+ 11 - 0
lib/data_channel/channel_io.dart

@@ -0,0 +1,11 @@
+import 'package:fis_vid/async_vid/vid_data.dart';
+
+import 'channel.dart';
+
+class VidDataChannelIO extends VidDataChannel {
+  @override
+  Future<AsyncVidImageDataBase> buildSource() {
+    // TODO: implement buildSource
+    throw UnimplementedError();
+  }
+}

+ 11 - 0
lib/data_channel/channel_stub.dart

@@ -0,0 +1,11 @@
+import 'package:fis_vid/async_vid/vid_data.dart';
+
+import 'channel.dart';
+
+class VidDataChannelStub extends VidDataChannel {
+  @override
+  Future<AsyncVidImageDataBase> buildSource() {
+    // TODO: implement buildSource
+    throw UnimplementedError();
+  }
+}

+ 11 - 0
lib/data_channel/channel_web.dart

@@ -0,0 +1,11 @@
+import 'package:fis_vid/async_vid/vid_data.dart';
+
+import 'channel.dart';
+
+class VidDataChannelWeb extends VidDataChannel {
+  @override
+  Future<AsyncVidImageDataBase> buildSource() {
+    // TODO: implement buildSource
+    throw UnimplementedError();
+  }
+}

+ 0 - 1
lib/data_host_v2/base.dart

@@ -1 +0,0 @@
-abstract class VidDataHost {}