HarmonyOS 鸿蒙Next中如何获取手机的音频媒体列表数据
HarmonyOS 鸿蒙Next中如何获取手机的音频媒体列表数据 如何获取手机的音频媒体列表数据?
在鸿蒙(HarmonyOS NEXT)开发中,文件选择与操作需遵循系统安全设计规范,具体逻辑如下:
- 文件选取环节需通过系统提供的 PhotoViewPicker 和 AudioViewPicker 组件主动触发选择器。开发者需调用这两个组件手动拉起文件选择界面,由用户在界面中自主挑选所需文件,待选择完成后,系统会返回对应的文件数据,开发者再基于这些数据完成页面渲染展示。
- 文件存储层面,鸿蒙系统将相关文件统一存放于「用户文件」目录下,所有文件操作(包括读取、处理等)均围绕该目录下的文件展开。
对比安卓系统,安卓通过文件路径即可直接操作文件,缺乏针对性的访问限制,理论上能获取设备内所有文件。而鸿蒙为保障系统安全性,对文件访问范围进行了严格管控:开发者无法直接获取系统文件目录下的内容,仅能访问「用户文件」目录中的文件。且该访问需通过上述 PhotoViewPicker/AudioViewPicker 组件,由用户手动选择后才能进行后续操作,避免无权限访问或恶意获取文件的情况。
相关文档:【音频类文件选取】
更多关于HarmonyOS 鸿蒙Next中如何获取手机的音频媒体列表数据的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
用户需要分享文件、保存图片、视频等用户文件时,开发者可以通过系统预置的文件选择器(FilePicker),实现该能力。通过Picker访问相关文件,将拉起对应的应用,引导用户完成界面操作,接口本身无需申请权限。Picker获取的URI只具有临时权限,获取持久化权限需要通过FilePicker设置永久授权方式获取。
根据用户文件的常见类型,选择器(FilePicker)分别提供以下选项:
-
PhotoViewPicker:适用于图片或视频类型文件的选择与保存(该接口在后续版本不再演进)。请使用PhotoAccessHelper的PhotoViewPicker来选择图片文件。请使用安全控件保存媒体库资源。
-
DocumentViewPicker:适用于文件类型文件的选择与保存。DocumentViewPicker对接的选择资源来自于FilePicker,负责文件类型的资源管理,文件类型不区分后缀,比如浏览器下载的图片、文档等,都属于文件类型。
-
AudioViewPicker:适用于音频类型文件的选择与保存。AudioViewPicker目前对接的选择资源来自于AudioPicker。
参考地址
在HarmonyOS Next中,可通过@ohos.multimedia.mediaLibrary模块获取音频媒体列表数据。首先使用getMediaLibrary获取媒体库实例,然后创建媒体选择条件MediaSelectOptions,指定媒体类型为音频MediaType.AUDIO。通过getFileAssets查询音频文件,返回FileAsset数组,其中包含音频文件的元数据信息如ID、名称、路径、时长等。
在HarmonyOS Next中,可以通过@ohos.file.picker和@ohos.file.fs模块获取音频媒体列表。以下是核心实现步骤:
- 使用PhotoViewPicker选择音频文件:
import { picker } from '@ohos.file.picker';
async function getAudioList() {
const audioPicker = new picker.PhotoViewPicker();
const result = await audioPicker.select({
MIMEType: picker.PhotoViewMIMETypes.AUDIO_TYPE,
maxSelectNumber: 100 // 最大选择数量
});
return result; // 返回文件URI列表
}
- 通过文件URI获取详细信息:
import { fs } from '@ohos.file.fs';
async function getAudioDetail(uri: string) {
const file = fs.openSync(uri, fs.OpenMode.READ_ONLY);
const stat = await fs.stat(file.fd);
// 可获取文件名、大小、修改时间等元数据
return {
name: uri.split('/').pop(),
size: stat.size,
modifiedTime: stat.mtime
};
}
- 权限配置: 在module.json5中添加必要权限:
{
"requestPermissions": [
{
"name": "ohos.permission.READ_MEDIA"
}
]
}
注意:实际使用时需要处理用户授权和错误捕获。这种方式通过系统文件选择器获取用户授权的音频文件,避免直接访问整个媒体库的权限问题。

