Skip to content

分布式相册

鸿蒙分布式相册:多设备间照片/视频的共享与同步。


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 代理"