HarmonyOS鸿蒙Next中选择相册后判断第一张选择是视频还是图片

HarmonyOS鸿蒙Next中选择相册后判断第一张选择是视频还是图片 模拟微信发朋友圈最多可以发9张图片,拉起相册选择照片,第一张如果选择的是图片之后的几张就不能选择视频,有监听选中图片的方法吗

3 回复

当前还不支持,即使鸿蒙版的微信,也是选择图片和视频之后,才能获取到选择的结果,然后判断是不是视频和图片全都选择了,如果全选了,弹框提示“图片和视频不能同时选择”,鸿蒙版微信当前这么做的

更多关于HarmonyOS鸿蒙Next中选择相册后判断第一张选择是视频还是图片的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,选择相册后判断第一张选择是视频还是图片,可以通过PhotoViewPickerVideoViewPicker来实现。首先使用PhotoViewPickerVideoViewPicker分别获取选择的图片和视频。通过getSelectedAssets()方法获取选择的资源列表,然后检查第一项的资源类型。如果资源类型是PhotoAsset,则为图片;如果是VideoAsset,则为视频。代码示例:

import photoViewPicker from '@ohos.file.picker';
import videoViewPicker from '@ohos.file.picker';

async function checkFirstSelection() {
    const photoPicker = new photoViewPicker.PhotoViewPicker();
    const videoPicker = new videoViewPicker.VideoViewPicker();

    try {
        const photoAssets = await photoPicker.select();
        const videoAssets = await videoPicker.select();

        if (photoAssets.length > 0) {
            const firstAsset = photoAssets[0];
            if (firstAsset instanceof photoViewPicker.PhotoAsset) {
                console.log('First selection is a photo.');
            }
        }

        if (videoAssets.length > 0) {
            const firstAsset = videoAssets[0];
            if (firstAsset instanceof videoViewPicker.VideoAsset) {
                console.log('First selection is a video.');
            }
        }
    } catch (error) {
        console.error('Error selecting assets:', error);
    }
}

checkFirstSelection();

通过这种方式,可以判断出第一项选择是视频还是图片。

在HarmonyOS鸿蒙Next中,选择相册后判断第一张选择是视频还是图片,可以通过以下步骤实现:

  1. 使用Picker组件选择相册中的文件。
  2. 获取选中的文件列表,并获取第一个文件。
  3. 通过文件的MIME类型判断是视频还是图片:
    • 如果MIME类型以image/开头,则为图片。
    • 如果MIME类型以video/开头,则为视频。

示例代码:

File file = selectedFiles.get(0);
String mimeType = getMimeType(file);
if (mimeType.startsWith("image/")) {
    // 是图片
} else if (mimeType.startsWith("video/")) {
    // 是视频
}
回到顶部