用途:为 iOS 应用实现、审查或改进照片选择、相机拍摄与媒体处理,覆盖 PhotosPicker、PHPickerViewController、相机采集、图片加载与媒体权限。
主要能力:PhotosPicker(SwiftUI,iOS 16+)支持单选、多选与媒体类型过滤(.images、.videos、.livePhotos、.screenshots 及组合);通过 loadTransferable(type:) 异步加载选中项,可自定义 Transferable 类型解码。权限方面区分只写(NSPhotoLibraryAddUsageDescription)与读写(NSPhotoLibraryUsageDescription),PhotosPicker 浏览无需权限;相机需 NSCameraUsageDescription,录音需 NSMicrophoneUsageDescription。相机采集以 @Observable 模型持有 AVCaptureSession,配合 UIViewRepresentable 预览层。图片加载提供 AsyncImage 与基于 CGImageSource 的降采样。
使用方式:在 Task 中异步加载选中数据;相机在后台线程调用 startRunning(),并在 onDisappear 调用 stop();权限被拒时引导用户前往设置。
适用场景:选图上传、相机拍照、缩略图展示、远程图片加载等。
限制:AsyncImage 不跨重绘缓存;大图需降采样避免内存峰值;缺少 Info.plist 权限键会导致运行时崩溃;startRunning() 为同步阻塞调用,不可在主线程执行。具体价格与平台支持暂未提供。