Appearance
分布式相册
鸿蒙分布式相册:多设备间照片/视频的共享与同步。
1. 分布式相册概述
1.1 核心特性
| 特性 | 说明 |
|---|---|
| 照片同步 | 多设备照片自动同步 |
| 视频共享 | 大视频文件跨设备 |
| 相册共享 | 共享相册/相册组 |
| 元数据同步 | 照片信息同步 |
1.2 应用场景
应用:
├─ 手机拍照 → 平板/电视查看
├─ 家庭共享相册
├─ 跨设备照片管理
└─ 智能家居照片展示2. 相册同步
2.1 照片同步
typescript
import { photoAccessHelper } from '@kit.MediaKit';
// 创建相册同步
let photoSyncManager = await photoAccessHelper.createPhotoSyncManager({
albums: ['手机相册', '分布式相册'],
syncDirection: photoAccessHelper.SyncDirection.BIDIRECTIONAL // 双向同步
})
// 监听同步事件
photoSyncManager.on('syncStart', (album: string) => {
console.log('相册同步开始:', album)
})
photoSyncManager.on('syncComplete', (album: string, success: boolean) => {
console.log('相册同步完成:', album, success ? '成功' : '失败')
})
// 开始同步
await photoSyncManager.start()2.2 照片选择与上传
typescript
import photoView from '@ohos.multimedia.photoView'
// 选择照片
let picker = new photoView.PhotoViewPicker()
let viewList = picker.select({
maxSelectCount: 9,
mimeType: photoView.PhotoViewMimeType.ALL
})
// 上传到分布式相册
for (let view of viewList) {
let photo = await this.uploadToDistributedAlbum(view.uri)
console.log('照片已上传:', photo.uri)
}3. 相册共享
3.1 创建共享相册
typescript
// 创建共享相册
let sharedAlbum = await photoAccessHelper.createSharedAlbum({
name: '家庭相册',
members: ['user1@harmonyos', 'user2@harmonyos']
})
// 添加成员
await sharedAlbum.addMember('user3@harmonyos')
// 上传照片到共享相册
await sharedAlbum.uploadPhoto(photoUri)
// 获取相册照片
let photos = await sharedAlbum.getPhotos()
for (let photo of photos) {
console.log('照片:', photo.uri)
}4. 面试高频考点
Q1: 分布式相册的工作原理?
回答:通过分布式软总线同步照片和视频,支持双向同步、共享相册、多设备访问。
Q2: 大视频文件如何同步?
回答:使用 request 代理下载/上传,支持断点续传。
🐱 小猫提示:分布式相册记住 "双向同步、共享相册、多设备访问、大文件用 request 代理"。