it0/it0_app/lib/features
hailin e706a4cdc7 fix: enable simultaneous playback + recording in voice call
Root cause: PcmPlayer called openPlayer() without audio session config,
so Android defaulted to earpiece-only mode. When the mic was actively
recording, playback was silently suppressed — the agent's TTS audio was
sent successfully over WebSocket but never reached the speaker.

Changes:

1. PcmPlayer (pcm_player.dart):
   - Added audio_session package for proper audio session management
   - Configure AudioSession with playAndRecord category so mic + speaker
     work simultaneously
   - Set voiceCommunication usage to enable Android hardware AEC (echo
     cancellation) — prevents feedback loops when speaker is active
   - defaultToSpeaker routes output to loudspeaker instead of earpiece
   - Restored setSpeakerOn() method stub (used by UI toggle)

2. AgentCallPage (agent_call_page.dart):
   - Fixed fire-and-forget bug: _pcmPlayer.feed() returns Future but was
     called without await, causing interleaved feedUint8FromStream calls
   - Added _feedChain serializer to guarantee sequential audio feeding

3. Dependencies:
   - Added audio_session package to pubspec.yaml

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 06:48:16 -08:00
..
agent_call fix: enable simultaneous playback + recording in voice call 2026-02-25 06:48:16 -08:00
alerts refactor: 移除 AppBar 刷新按钮,统一使用下拉刷新 2026-02-23 05:08:16 -08:00
approvals refactor: 移除 AppBar 刷新按钮,统一使用下拉刷新 2026-02-23 05:08:16 -08:00
auth feat: 生产级 API 错误处理 — 重试拦截器、友好错误提示、网络监测、WebSocket 退避 2026-02-23 04:01:04 -08:00
chat feat: multi-turn conversation context management with session history UI 2026-02-24 19:04:35 -08:00
dashboard refactor: 移除 AppBar 刷新按钮,统一使用下拉刷新 2026-02-23 05:08:16 -08:00
notifications feat: 完成 iAgent App 三大功能 + 修复租户上下文 2026-02-23 01:10:52 -08:00
servers refactor: 移除 AppBar 刷新按钮,统一使用下拉刷新 2026-02-23 05:08:16 -08:00
settings feat: add voice I/O test page in Flutter settings 2026-02-24 05:16:10 -08:00
standing_orders refactor: 移除 AppBar 刷新按钮,统一使用下拉刷新 2026-02-23 05:08:16 -08:00
tasks refactor: 移除 AppBar 刷新按钮,统一使用下拉刷新 2026-02-23 05:08:16 -08:00
terminal fix: translate all remaining English UI strings to Chinese and remove dead code 2026-02-23 02:07:57 -08:00