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);
|
final List<double> _waveHeights = List.generate(20, (_) => 0.3);
|
||||||
Timer? _waveTimer;
|
Timer? _waveTimer;
|
||||||
|
|
||||||
// Mute state
|
// Mute & speaker state
|
||||||
bool _isMuted = false;
|
bool _isMuted = false;
|
||||||
|
bool _isSpeaker = true;
|
||||||
|
|
||||||
// Prevent double-actions
|
// Prevent double-actions
|
||||||
bool _userEndedCall = false;
|
bool _userEndedCall = false;
|
||||||
|
|
@ -193,6 +194,13 @@ class _AgentCallPageState extends ConsumerState<AgentCallPage>
|
||||||
setState(() {});
|
setState(() {});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Toggle speaker / earpiece.
|
||||||
|
void _toggleSpeaker() {
|
||||||
|
_isSpeaker = !_isSpeaker;
|
||||||
|
Hardware.instance.setSpeakerphoneOn(_isSpeaker);
|
||||||
|
setState(() {});
|
||||||
|
}
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
// Build
|
// Build
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
|
|
@ -429,12 +437,10 @@ class _AgentCallPageState extends ConsumerState<AgentCallPage>
|
||||||
),
|
),
|
||||||
const SizedBox(width: 24),
|
const SizedBox(width: 24),
|
||||||
_CircleButton(
|
_CircleButton(
|
||||||
icon: Icons.volume_up,
|
icon: _isSpeaker ? Icons.volume_up : Icons.hearing,
|
||||||
label: '扬声器',
|
label: _isSpeaker ? '扬声器' : '听筒',
|
||||||
isActive: false,
|
isActive: _isSpeaker,
|
||||||
onTap: () {
|
onTap: _toggleSpeaker,
|
||||||
// WebRTC handles audio routing automatically
|
|
||||||
},
|
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue