| 字段 | 内容 |
|---|---|
| 项目 | ZhctTrayBindingMachine |
| 日期 | 2026-08-29 |
| 状态 | 代码与本地资源已完成,待目标设备真机听感验收 |
| 影响范围 | 消费页语音、交易失败语义、读卡器异常文字布局 |
| 文件 | 责任 |
|---|---|
ConsumptionVoicePolicy.java |
业务事件到语音提示及优先级的纯 Java 映射 |
ConsumptionVoicePlaybackGate.java |
会话去重、低优先级跳过和高优先级抢占 |
ConsumptionVoiceOutcomeClassifier.java |
将交易失败分类为读卡失败、余额不足或支付结果待确认 |
ConsumptionVoiceController.java |
语音开关、本地资源映射、MediaPlayer 播放和释放 |
ConsumptionActivity.java |
在订单、交易和读卡器状态变化时发出业务语音事件 |
activity_consumption.xml |
读卡器异常文字左侧镜像布局 |
Activity 不直接引用新语音资源 ID,也不根据写卡回调自行判断应播报的最终结果。
新文件均放入现有目录 app/src/main/res/raw/:
| 文件 | 播报内容 |
|---|---|
consumption_place_card_payment.wav |
请将卡片放在读卡区 |
consumption_payment_processing.wav |
正在支付,请勿移动卡片 |
consumption_no_pending_order.wav |
没有待支付订单,请取走餐盘 |
consumption_payment_success.wav |
支付成功,请取走卡片和餐盘 |
consumption_card_read_failed.wav |
读卡失败,请取走卡片后重新操作 |
consumption_payment_unknown.wav |
支付结果待确认,请勿重复刷卡,请联系工作人员 |
consumption_reader_unavailable.wav |
读卡器暂不可用,请联系工作人员 |
consumption_place_card_verify.wav |
请将卡片放在读卡区进行核验 |
consumption_verify_success.wav |
核验完成,请取走卡片和餐盘 |
consumption_balance_insufficient.wav |
余额不足,请更换卡片或选择其他支付方式 |
please_place_card.wav。Tingting。175。consumption_*.wav 在不改变音调的前提下统一加速为原文件的 1.2 倍。-18.1dB 至 -19.2dB,峰值约 -2.6dB 至 -4.2dB,无削波。使用相同声线、语速和转换参数重新合成参考句“请放卡片进行支付”,其 PCM SHA-256 与现有 please_place_card.wav 完全一致:
016128497cb7cf4c75abef470d5b5427e417f3dc8a816a81b4cdb599ebc93ec6
因此本次新文件的声线、语调风格和原始音量处理链路与当前消费语音一致;交付语速按真机试听反馈统一调整为原文件的 1.2 倍。
consumption_*.wav,未修改 please_place_card.wav 和 please_swipe_card.mp3。1.2 倍。1.1983 至 1.2028 倍,差异来自音频帧边界。pcm_s16le、22050Hz、单声道 WAV。| 条件 | 页面/交易分类 | 语音 |
|---|---|---|
| 首次读卡失败,尚未尝试扣款 | 确定未扣款 | 读卡失败,请取走卡片后重新操作 |
| 余额不足,且批次没有任何已完成扣款 | 确定未扣款 | 余额不足,请更换卡片或选择其他支付方式 |
| 已尝试扣款,无法完整确认结果 | 结果待确认,禁止自动重试 | 支付结果待确认,请勿重复刷卡,请联系工作人员 |
| 已完成部分扣款,后续钱包余额不足 | 结果待确认 | 不得误播余额不足并引导再次支付 |
| 本地扣款及复读校验成功、仅上报失败 | 支付成功,后台补传 | 支付成功,请取走卡片和餐盘 |
余额不足只在“没有任何已完成扣款”时归类为确定失败;部分扣款后出现同名错误仍保持结果待确认。
consumption_reader_status 调整为:
android:layout_alignParentStart="true"
android:layout_marginStart="@dimen/common_title_bar_horizontal_margin"
移除了对应 End 属性。仍位于标题状态视图下方,继续使用原顶部外边距、字号、颜色和 gone 初始状态;业务代码仍只有 Tone.ERROR 时显示。
ConsumptionVoicePolicyTest:事件映射、优先级和空事件保护。ConsumptionVoicePlaybackGateTest:会话去重、抢占、低优先级跳过、播放失败重试和会话复位。ConsumptionVoiceOutcomeClassifierTest:首次读卡失败、未扣款余额不足、普通扣款异常和部分扣款后余额不足。:app:testDebugUnitTest:通过,共 129 个测试,0 failure、0 error、0 skipped。:app:assembleDebug:通过。app/build/outputs/apk/debug/app-debug.apk,约 64MB。git diff --check:通过,无空白错误。构建继续使用项目兼容的 Amazon Corretto JDK 8。日志中保留旧 Android 构建链对 core-lambda-stubs.jar 主版本的既有警告,不影响构建成功。
本次只执行只读 Git 状态、差异和空白检查;未暂存、提交、推送或执行其他 Git 写操作。