joywayer
90a523736e
3.A/3.F 修复:voicePlaying 入参类型兼容 + mediaTypeAudio canPlay 诊断
## 发现的根因
实测日志 mediaTypeAudio 进入了 native(amrFileCodec frame=107 打印两次确认
转码运行),但缺 gameui_play_voice 触发 log → canPlay=false 被短路。
原因是 voicePlaying handler 解析 H5 入参时类型不容忍。
之前实现:
let on = (data?.asInt ?? 0) == 1
asInt 只对 BridgeData.number case 返回值。若 H5 传 string "1"(实测确实
会传)→ asInt 返回 nil → `?? 0 = 0` → `0 == 1 = false` → 开关被关闭。
daoqi 用 ObjC `[data intValue]`(NSString/NSNumber 都能转),永远能
正确处理两种类型。
## 修复
VoicePlayingHandler:改用 asLooseString 比较 "1" 字符串,兼容 H5 传:
- string "1" → asLooseString → "1" → on=true ✓
- number 1 → asLooseString → "1" → on=true ✓
- string "0" → asLooseString → "0" → on=false ✓
- number 0 → asLooseString → "0" → on=false ✓
- 其它 → on=false(保守拒绝)
同时加 log.debug 记录每次 voicePlaying 调用的 raw + 解析后值,便于后续
诊断 H5 业务行为。
## 诊断辅助
RemoteAudioHandler.handleMediaTypeAudio 增加 log.debug:
mediaTypeAudio user=X transcoded=Y canPlay=Z
让真机测试能直接看到 canPlay 实际值,避免再次盲猜。
## 验证
BuildProject 通过 0 错误。真机重试 mediaTypeAudio 应能看到:
voicePlaying H5 → raw=1 → isEnabled=true
mediaTypeAudio user=0 transcoded=true canPlay=true
gameui_play_voice user=0
2026-06-27 12:07:20 +08:00
..
2026-06-23 17:24:59 +08:00
2026-06-23 08:27:40 +08:00
2026-06-22 18:38:00 +08:00
2026-06-22 18:38:00 +08:00
2026-06-22 18:38:00 +08:00
2026-06-24 09:16:27 +08:00
2026-06-23 23:04:57 +08:00
2026-06-22 18:38:00 +08:00
2026-06-22 21:30:03 +08:00
2026-06-27 12:07:20 +08:00
2026-06-22 18:38:00 +08:00
2026-06-22 22:22:23 +08:00
2026-06-22 20:59:00 +08:00
2026-06-22 18:38:00 +08:00
2026-06-22 21:19:55 +08:00
2026-06-27 12:07:20 +08:00