兼容 IOS 端
This commit is contained in:
@@ -31,6 +31,19 @@ enum ClipboardReadResult {
|
||||
invalid,
|
||||
}
|
||||
|
||||
List<Permission> recordingGalleryPermissionsForHost({
|
||||
required bool isIOS,
|
||||
required bool isAndroid,
|
||||
}) {
|
||||
if (isIOS) {
|
||||
return [Permission.photosAddOnly];
|
||||
}
|
||||
if (isAndroid) {
|
||||
return [Permission.videos, Permission.storage];
|
||||
}
|
||||
return const [];
|
||||
}
|
||||
|
||||
/// 开始录制所需的相机/麦克风权限检测结果。
|
||||
class RecordingRequiredPermissions {
|
||||
const RecordingRequiredPermissions({
|
||||
@@ -221,7 +234,9 @@ class RecordingViewModel extends Notifier<RecordingModel> {
|
||||
Future<void> restorePreview() async {
|
||||
if (!RecordingPlatform.isSupported) return;
|
||||
|
||||
_updateSession((s) => s.copyWith(isPreviewReady: false, errorMessage: null));
|
||||
_updateSession(
|
||||
(s) => s.copyWith(isPreviewReady: false, errorMessage: null),
|
||||
);
|
||||
try {
|
||||
final status = await _initializePreviewWithRetry();
|
||||
_updateSession(
|
||||
@@ -245,13 +260,10 @@ class RecordingViewModel extends Notifier<RecordingModel> {
|
||||
|
||||
/// 当前平台所需的相册/视频保存权限列表。
|
||||
List<Permission> _galleryPermissions() {
|
||||
if (Platform.isIOS) {
|
||||
return [Permission.photosAddOnly, Permission.photos];
|
||||
}
|
||||
if (Platform.isAndroid) {
|
||||
return [Permission.videos, Permission.storage];
|
||||
}
|
||||
return const [];
|
||||
return recordingGalleryPermissionsForHost(
|
||||
isIOS: Platform.isIOS,
|
||||
isAndroid: Platform.isAndroid,
|
||||
);
|
||||
}
|
||||
|
||||
/// 判断相册相关权限是否至少有一项已授予。
|
||||
@@ -267,7 +279,8 @@ class RecordingViewModel extends Notifier<RecordingModel> {
|
||||
}
|
||||
|
||||
/// 检测并尝试申请相机、麦克风权限,同步更新 session 中的 isMicrophoneGranted。
|
||||
Future<RecordingRequiredPermissions> ensureCameraAndMicrophonePermissions() async {
|
||||
Future<RecordingRequiredPermissions>
|
||||
ensureCameraAndMicrophonePermissions() async {
|
||||
final permissions = await PermissionService.requestMissing([
|
||||
Permission.camera,
|
||||
Permission.microphone,
|
||||
@@ -303,9 +316,7 @@ class RecordingViewModel extends Notifier<RecordingModel> {
|
||||
return;
|
||||
}
|
||||
if (!session.isPreviewReady) {
|
||||
_updateSession(
|
||||
(s) => s.copyWith(errorMessage: '相机预览未就绪,请稍后重试'),
|
||||
);
|
||||
_updateSession((s) => s.copyWith(errorMessage: '相机预览未就绪,请稍后重试'));
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user