实现缩放功能:增加缩放功能检索和设置方法,更新UI以支持缩放调整,增强缩放比例的状态管理。
This commit is contained in:
@@ -81,6 +81,21 @@ class RecordingPlatform {
|
||||
return RecordingStatus.fromMap(result ?? const {});
|
||||
}
|
||||
|
||||
static Future<RecordingZoomCapabilities> getZoomCapabilities() async {
|
||||
final result = await _channel.invokeMapMethod<String, dynamic>(
|
||||
'getZoomCapabilities',
|
||||
);
|
||||
return RecordingZoomCapabilities.fromMap(result);
|
||||
}
|
||||
|
||||
static Future<RecordingZoomCapabilities> setZoomRatio(double ratio) async {
|
||||
final result = await _channel.invokeMapMethod<String, dynamic>(
|
||||
'setZoomRatio',
|
||||
<String, dynamic>{'zoomRatio': ratio},
|
||||
);
|
||||
return RecordingZoomCapabilities.fromMap(result);
|
||||
}
|
||||
|
||||
static Future<RecordingStartResult> startRecording({
|
||||
bool withAudio = true,
|
||||
bool enableDoNotDisturb = true,
|
||||
@@ -156,6 +171,29 @@ class RecordingPlatform {
|
||||
}
|
||||
}
|
||||
|
||||
class RecordingZoomCapabilities {
|
||||
const RecordingZoomCapabilities({
|
||||
required this.zoomRatio,
|
||||
required this.minZoomRatio,
|
||||
required this.maxZoomRatio,
|
||||
});
|
||||
|
||||
final double zoomRatio;
|
||||
final double minZoomRatio;
|
||||
final double maxZoomRatio;
|
||||
|
||||
factory RecordingZoomCapabilities.fromMap(Map<String, dynamic>? map) {
|
||||
final minZoomRatio = (map?['minZoomRatio'] as num?)?.toDouble() ?? 1.0;
|
||||
final maxZoomRatio = (map?['maxZoomRatio'] as num?)?.toDouble() ?? 3.0;
|
||||
final zoomRatio = (map?['zoomRatio'] as num?)?.toDouble() ?? minZoomRatio;
|
||||
return RecordingZoomCapabilities(
|
||||
zoomRatio: zoomRatio.clamp(minZoomRatio, maxZoomRatio).toDouble(),
|
||||
minZoomRatio: minZoomRatio,
|
||||
maxZoomRatio: maxZoomRatio,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
class RecordingStartResult {
|
||||
const RecordingStartResult({this.outputPath, required this.status});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user