react-native-sound在Android AVD中播放有进程但无声音如何解决?
React Native Sound 在 Android AVD 播放无声音问题排查方案
1. 先排查 Android 模拟器本身的音频配置
- 打开 AVD Manager,编辑目标模拟器,展开Show Advanced Settings
- 确认Audio Input和Audio Output未设置为
None,选择你电脑的声卡设备 - 重启模拟器后重新测试播放
2. 验证 Android 项目的权限与库配置
- 检查
AndroidManifest.xml是否添加了必要权限:<uses-permission android:name="android.permission.INTERNET" /> <!-- 网络音频需添加 --> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <!-- 本地音频需添加 --> <uses-permission android:name="android.permission.MEDIA_CONTENT_CONTROL" /> - 确认
build.gradle(Module 级别)已正确引入依赖:dependencies { implementation project(':react-native-sound') } - 检查
MainApplication.java中是否注册了模块:import com.zmxv.RNSound.RNSoundPackage; @Override protected List<ReactPackage> getPackages() { return Arrays.asList( new MainReactPackage(), new RNSoundPackage() // 确保该行存在 ); }
3. 代码层面的播放参数检查
- 强制设置音量,避免默认音量为0:
sound.setVolume(1.0); // 设置最大音量测试 - 确认本地音频文件路径:需放在
android/app/src/main/res/raw目录下,或使用正确的文件URI - 避免组件挂载时立即播放,可添加延迟确保资源加载完成:
useEffect(() => { const sound = new Sound('test.mp3', Sound.MAIN_BUNDLE, (error) => { if (error) { console.log('音频加载失败', error); return; } setTimeout(() => { sound.play((success) => { if (!success) console.log('播放启动失败'); }); }, 1000); }); return () => sound.release(); }, []);
4. 测试不同版本的 Android 模拟器
- 部分旧版本 Android 模拟器存在音频驱动bug,尝试创建 Android 10/11/12 版本的模拟器测试
- 确保模拟器的系统镜像已完整下载,无损坏
5. 排查电脑系统音频状态
- 确认电脑本身音量未静音,模拟器的音频输出未被系统静音
- 关闭其他占用音频设备的程序,避免资源冲突
内容的提问来源于stack exchange,提问作者Nagaraj sk
相关产品推荐
相关产品推荐

