Skip to content
雲里
里雾

RN 音频与静态资源管理

mindgym

RN 音频与静态资源管理

概述

React Native 中播放音频文件涉及一条复杂的管道:Metro bundler 在编译时把 require('./click.mp3') 替换为 asset module ID,运行时由 asset resolver 定位到实际文件(开发模式走 HTTP、生产模式走本地 bundle)。Expo 管理工作流把这条管道完全自动化,而裸 RN 需要手动链接资源文件到原生项目。

工作方式

Metro 静态资源处理

  1. 编译时:require('./audio.mp3') → 数字 ID + 注册到 asset 表
  2. 开发时:ID → Metro dev server HTTP URL
  3. 生产时:ID → app bundle 内文件路径
  4. 图片、音频、视频用完全相同的机制

expo-audio vs expo-av

裸 RN 的痛点

参见

参考