You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React-native-jitsi-meet按钮全部失效 点击触发playTouchSound未定义错误

根因分析

这个报错是react-native-jitsi-meet SDK的版本依赖冲突问题,核心触发逻辑是:
Jitsi Meet SDK内部所有可点击组件的触控回调默认会调用React Native原生SoundManagerModule提供的playTouchSound方法播放触控反馈音效,当出现以下任意一种情况时就会触发该异常:

  • 项目当前使用的React Native版本与Jitsi Meet SDK依赖的React Native版本不匹配,playTouchSound方法在对应使用的React Native版本中已被移除/重命名
  • 安卓端打包混淆规则把SoundManagerModule类过滤掉,导致JS侧无法拿到原生模块实例
  • 项目自定义的Jitsi初始化配置错误覆盖了全局音效模块的注入对象,导致实例为undefined
排查修复方案
  • 优先做版本对齐:查询项目当前使用的react-native-jitsi-meet版本的官方依赖说明,将项目React Native版本升级到SDK要求的匹配版本,或者降级Jitsi SDK到适配当前React Native的版本
  • 快速修复:不需要调整版本的场景下,可以在初始化Jitsi会议时直接关闭触控音效,避免触发异常调用,配置示例如下:
const meetConfig = {
  // 其他原有配置
  userInfo: {
    disableTouchSound: true
  },
  featureFlags: {
    'play-sounds': false
  }
};
  • 安卓端混淆修复:如果仅release包出现该问题,在android/app/proguard-rules.pro文件中添加混淆规则,避免SoundManager模块被混淆过滤:
-keep class com.facebook.react.modules.sound.** { *; }
  • 自定义编译Jitsi SDK源码的场景下,检查内部react/features/base/touch模块的逻辑,确认playTouchSound方法调用前已经做了非空判断,未做校验的场景下手动补充非空判断逻辑即可。

内容的提问来源于stack exchange,提问作者rohit garg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 17:39:01