feat: 目标不在线时进行提示和更新UI
This commit is contained in:
@@ -99,6 +99,9 @@ class _ControllerHomeState extends State<ControllerHome> {
|
||||
_controller!.onIceDisconnected = (message) {
|
||||
_onIceDisconnected(message);
|
||||
};
|
||||
_controller!.onTargetOffline = (message) {
|
||||
_onTargetOffline(message);
|
||||
};
|
||||
_controller!.onRemoteStream = (renderer) {
|
||||
setState(() => _renderer = renderer);
|
||||
renderer.addListener(_onRendererUpdate);
|
||||
@@ -130,6 +133,20 @@ class _ControllerHomeState extends State<ControllerHome> {
|
||||
await _disconnect();
|
||||
}
|
||||
|
||||
/// 目标被控端不在线:提示用户并复位到连接设置面板。
|
||||
Future<void> _onTargetOffline(String message) async {
|
||||
final scaffoldCtx = _scaffoldKey.currentState?.context;
|
||||
if (mounted && scaffoldCtx != null) {
|
||||
ScaffoldMessenger.of(scaffoldCtx).showSnackBar(
|
||||
SnackBar(
|
||||
content: Text(message),
|
||||
duration: const Duration(seconds: 3),
|
||||
),
|
||||
);
|
||||
}
|
||||
setState(() => _connected = false);
|
||||
}
|
||||
|
||||
Future<void> _disconnect() async {
|
||||
await _controller?.disconnect();
|
||||
_controller = null;
|
||||
|
||||
Reference in New Issue
Block a user