React Native 0.70 Pressable点击无系统音效问题求助
可能的原因及对应解决方式
自定义波纹逻辑绕过原生触摸音效触发机制
若你通过android_ripple属性自定义波纹效果,React Native 0.70中该逻辑可能会跳过原生View的触摸音效触发流程,导致android_disableSound=false的配置失效。
解决:先移除自定义android_ripple配置,测试原生默认波纹下音效是否恢复;若必须保留自定义波纹,需在onPress回调中通过原生模块手动触发系统音效。SoundManager.playTouchSound()调用无效
SoundManager并非React Native公开API,直接调用会因上下文、权限等问题失效。Android原生触摸音效需通过AudioManager的playSoundEffect方法触发。
解决:编写原生Android模块,在模块内获取AudioManager实例并调用playSoundEffect(AudioManager.FX_KEY_CLICK),再在React Native的Pressable回调中调用该模块方法。APP音频设置被意外修改
检查APP内是否有音频相关逻辑(如媒体播放)修改了AudioManager配置,导致触摸音效被静音;同时确认设备应用信息页中该APP的音效设置未被单独关闭。
解决:在APP启动时重置AudioManager的音效模式,确保触摸音效处于可用状态;排查并恢复被修改的音频配置。React Native 0.70版本兼容性Bug
0.70版本的Pressable在Android平台存在触摸音效触发异常的已知问题,后续小版本更新已修复该Bug。
解决:升级React Native至0.70系列最新小版本,或直接升级到更高稳定版本验证问题是否解决。
内容的提问来源于stack exchange,提问作者Jankapunkt

