React Native获取音乐信息(专辑名、艺术家名等)方案咨询
适配新版React Native的本地音乐元数据获取方案
推荐可用库
react-native-metadata-extractor
基于Android的MetadataExtractor和iOS的AVFoundation开发,支持提取MP3、FLAC、WAV等常见音频格式的完整元数据,包括艺术家、专辑名、曲目标题、时长等字段,维护状态活跃,适配RN 0.60+版本。
使用方式:调用extractMetadata方法并传入本地音频文件路径,异步获取结构化的元数据对象。需注意配置Android存储权限(Android 13+为READ_MEDIA_AUDIO,旧版本为READ_EXTERNAL_STORAGE)和iOS隐私权限描述。react-native-audio-metadata
专注于音频元数据解析的轻量库,支持iOS和Android,返回字段清晰(如artist、album、title),适配新版RN。
使用方式:通过getMetadata方法传入文件URI或本地路径,即可获取元数据。iOS需在Info.plist中添加NSAppleMusicUsageDescription权限说明,Android按版本配置对应存储权限。
备选方案:原生桥接实现
若不想依赖第三方库,可自行编写原生模块:
- Android:通过
MediaStore.Audio内容提供者查询本地音频的元数据,将所需字段通过桥接暴露给JS层。 - iOS:使用
MPMediaQuery(针对系统音乐库)或AVAsset(针对本地文件)提取元数据,再通过RN原生接口传递给前端。
这种方式完全适配新版RN,且灵活性更高,但需要具备原生开发能力。
关键注意事项
- 权限配置必须到位:Android 13+需申请
READ_MEDIA_AUDIO权限,iOS需在Info.plist中添加对应隐私描述,否则会出现权限拒绝导致无法读取元数据的问题。 - 确保传入的文件路径/URI格式正确,不同平台的路径格式存在差异,需做好兼容处理。
内容的提问来源于stack exchange,提问作者Hamid K72
相关产品推荐
相关产品推荐

