用途:expo-audio 用于在 React Native 应用中实现音频播放与录音,替代已废弃的 expo-av,支持 Android、iOS、tvOS 和 Web,捆绑版本约 1.1.1。
主要能力:AudioPlayer 类负责播放,提供 volume、isPlaying、isLoaded、duration、currentTime 属性,以及 play、pause、seekTo、release 方法;AudioRecorder 类负责录音,方法含 prepareToRecordAsync、record、stop、pause、release。可用 setAudioModeAsync 配置 playsInSilentMode、allowsRecording、interruptionMode。
使用方式:安装命令 npx expo install expo-audio。在 app.json 添加 expo-audio 插件,可配置 microphonePermission(iOS)与 recordAudioAndroid(Android);iOS 后台播放需在 app.json 的 ios.infoPlist 添加 UIBackgroundModes: ["audio"]。组件内推荐用 useAudioPlayer() 和 useAudioRecorder() 钩子;组件外可用 createAudioPlayer() 和 setAudioModeAsync()。录音前用 AudioModule.requestRecordingPermissionsAsync() 请求权限,并用 useAudioRecorderState 读取状态。
适用场景:应用内音效播放、录音、后台音频、音量控制、预加载声音等。
限制:expo-audio 播放结束后不会自动重置位置,需调用 seekTo(0) 重播;createAudioPlayer 必须手动 release() 防内存泄漏。Web 端 Chrome 的 MediaRecorder 可能产生缺少时长元数据的 WebM 文件,且麦克风访问要求 HTTPS。
暂未提供:价格、收费模式、具体效果与性能数据未在资料中给出。