如何关闭React Native中语音识别的提示音?
关闭React Native Voice在Android端的启动提示音
当然可以搞定这个问题!那个提示音是Android系统默认的语音识别启动音效,咱们可以通过修改原生代码或者用补丁工具来关闭它,下面是具体步骤:
方法一:直接修改库的原生代码(适合已 eject 的项目)
- 找到你的项目中
@react-native-community/voice的Android模块文件,路径大概是:node_modules/@react-native-community/voice/android/src/main/java/com/reactnativecommunity/voice/VoiceModule.java - 打开这个文件,找到构建
RecognizerIntent的代码块,添加一行关闭音效的参数:Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); // 加入这行代码关闭提示音 intent.putExtra(RecognizerIntent.EXTRA_SOUND_EFFECTS_ENABLED, false); - 重新编译你的Android项目,启动语音识别后就不会有提示音了。
方法二:用patch-package保留修改(推荐,避免更新库丢失修改)
如果直接修改node_modules里的文件,下次更新库时修改会被覆盖,用patch-package可以生成持久化的补丁:
- 先安装依赖:
npm install patch-package --save-dev - 按照方法一的步骤修改
VoiceModule.java文件 - 运行命令生成补丁:
npx patch-package @react-native-community/voice - 在项目的
package.json的scripts中添加:
这样每次执行"scripts": { // 其他已有的脚本... "postinstall": "patch-package" }npm install后,补丁会自动应用到库文件上。
⚠️ 注意:少数Android设备可能因为系统限制,强制开启语音识别提示音,这种情况下这个方法可能无效,但大部分主流品牌的设备都支持这个设置。
内容的提问来源于stack exchange,提问作者Vinay Sharma




