fix: implement speaker/earpiece toggle on voice call page
Use Hardware.instance.setSpeakerphoneOn() to switch between speaker and earpiece modes. Default to speaker on. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
23b5bce983
commit
46a2d06be3
|
|
@ -37,8 +37,9 @@ class _AgentCallPageState extends ConsumerState<AgentCallPage>
|
|||
final List<double> _waveHeights = List.generate(20, (_) => 0.3);
|
||||
Timer? _waveTimer;
|
||||
|
||||
// Mute state
|
||||
// Mute & speaker state
|
||||
bool _isMuted = false;
|
||||
bool _isSpeaker = true;
|
||||
|
||||
// Prevent double-actions
|
||||
bool _userEndedCall = false;
|
||||
|
|
@ -193,6 +194,13 @@ class _AgentCallPageState extends ConsumerState<AgentCallPage>
|
|||
setState(() {});
|
||||
}
|
||||
|
||||
/// Toggle speaker / earpiece.
|
||||
void _toggleSpeaker() {
|
||||
_isSpeaker = !_isSpeaker;
|
||||
Hardware.instance.setSpeakerphoneOn(_isSpeaker);
|
||||
setState(() {});
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// Build
|
||||
// ---------------------------------------------------------------------------
|
||||
|
|
@ -429,12 +437,10 @@ class _AgentCallPageState extends ConsumerState<AgentCallPage>
|
|||
),
|
||||
const SizedBox(width: 24),
|
||||
_CircleButton(
|
||||
icon: Icons.volume_up,
|
||||
label: '扬声器',
|
||||
isActive: false,
|
||||
onTap: () {
|
||||
// WebRTC handles audio routing automatically
|
||||
},
|
||||
icon: _isSpeaker ? Icons.volume_up : Icons.hearing,
|
||||
label: _isSpeaker ? '扬声器' : '听筒',
|
||||
isActive: _isSpeaker,
|
||||
onTap: _toggleSpeaker,
|
||||
),
|
||||
],
|
||||
);
|
||||
|
|
|
|||
Loading…
Reference in New Issue