HarmonyOS鸿蒙Next中获取用户相机图片和拍摄的视频

HarmonyOS鸿蒙Next中获取用户相机图片和拍摄的视频 你好,最近在学习鸿蒙请问要获取用户的相册图片 视频 截图等,只能通过FilePicker吗,有没有方式像安卓一样通过系统数据库获取所有文件,目前FilePicker这种方式要用户选择,有没有一种方式用户给权限后直接获取所有文件

7 回复

DocumentViewPicker 可以获取所有文件。

更多关于HarmonyOS鸿蒙Next中获取用户相机图片和拍摄的视频的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


DocumentViewPicker是用来选择文档的和PhotoViewPicker一样,也要用户手动选择,有没有给一个权限获取所有文件的,

找HarmonyOS工作还需要会Flutter的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:BV1S4411E7LY/?p=17

这不可能吧,那样就不够安全了。

安卓就是这样的,你的意思是获取相册的图片 视频 音频必须用PhotoViewPicker进行获取和保存是吧?

在HarmonyOS鸿蒙Next中,获取用户相机图片和拍摄的视频可以通过CameraKitMediaLibrary API实现。CameraKit用于控制相机功能,MediaLibrary用于访问媒体文件。

首先,使用CameraKit初始化相机并设置参数,通过capturePhoto方法拍摄照片,或通过startRecordingstopRecording方法录制视频。拍摄完成后,照片和视频会保存到设备的媒体库中。

然后,使用MediaLibrary API访问媒体库,通过getMediaAssets方法获取照片和视频文件。可以通过MediaAsset对象获取文件的URI、创建时间、文件类型等信息。

示例代码:

import cameraKit from '[@ohos](/user/ohos).multimedia.camera';
import mediaLibrary from '[@ohos](/user/ohos).multimedia.mediaLibrary';

// 初始化相机
let cameraManager = cameraKit.getCameraManager(context);
let cameraInput = cameraManager.getCameraInput(cameraKit.CameraType.BACK);
let previewOutput = cameraManager.createPreviewOutput(surfaceId);
let photoOutput = cameraManager.createPhotoOutput();
let videoOutput = cameraManager.createVideoOutput(surfaceId);

// 拍摄照片
photoOutput.capturePhoto((err, photo) => {
    if (err) {
        console.error('Failed to capture photo');
        return;
    }
    console.log('Photo captured:', photo.uri);
});

// 录制视频
videoOutput.startRecording((err, video) => {
    if (err) {
        console.error('Failed to start recording');
        return;
    }
    console.log('Recording started');
});

videoOutput.stopRecording((err, video) => {
    if (err) {
        console.error('Failed to stop recording');
        return;
    }
    console.log('Recording stopped:', video.uri);
});

// 访问媒体库
let media = mediaLibrary.getMediaLibrary(context);
let fileKeyObj = mediaLibrary.FileKey;
let fetchOption = {
    selections: `${fileKeyObj.MEDIA_TYPE}=?`,
    selectionArgs: [mediaLibrary.MediaType.IMAGE.toString()],
};
let fetchResult = media.getMediaAssets(fetchOption);
let fileAsset = await fetchResult.getFirstObject();
console.log('First image URI:', fileAsset.uri);
``

通过上述方法,可以在HarmonyOS鸿蒙Next中获取用户相机拍摄的图片和视频。

在HarmonyOS鸿蒙Next中,获取用户相机图片和视频可以通过CameraKitMediaLibrary API实现。首先,使用CameraKit启动相机应用,设置拍照或录像模式,并通过CaptureSession捕获图片或视频。捕获完成后,使用MediaLibrary将文件保存到设备相册中,并获取其URI。开发者可以通过IntentAbility与相机应用交互,确保用户授权访问相机和存储权限。

回到顶部