Skip to content

Commit 25a87c6

Browse files
authored
Add support the keep-alived wss for the phone mic recording (#2353)
1 parent bc99696 commit 25a87c6

File tree

1 file changed

+16
-11
lines changed

1 file changed

+16
-11
lines changed

app/lib/providers/capture_provider.dart

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ class CaptureProvider extends ChangeNotifier
9292

9393
bool get transcriptServiceReady => _transcriptServiceReady && _internetStatus == InternetStatus.connected;
9494

95+
// having a connected device or using the phone's mic for recording
9596
bool get recordingDeviceServiceReady => _recordingDevice != null || recordingState == RecordingState.record;
9697

9798
bool get havingRecordingDevice => _recordingDevice != null;
@@ -458,19 +459,23 @@ class CaptureProvider extends ChangeNotifier
458459
}
459460

460461
void _startKeepAliveServices() {
461-
if (_recordingDevice != null && _socket?.state != SocketServiceState.connected) {
462-
_keepAliveTimer?.cancel();
463-
_keepAliveTimer = Timer.periodic(const Duration(seconds: 15), (t) async {
464-
debugPrint("[Provider] keep alive...");
465-
466-
if (_recordingDevice == null || _socket?.state == SocketServiceState.connected) {
467-
t.cancel();
468-
return;
469-
}
462+
_keepAliveTimer?.cancel();
463+
_keepAliveTimer = Timer.periodic(const Duration(seconds: 15), (t) async {
464+
debugPrint("[Provider] keep alive...");
465+
if (!recordingDeviceServiceReady || _socket?.state == SocketServiceState.connected) {
466+
t.cancel();
467+
return;
468+
}
469+
if (_recordingDevice != null) {
470470
BleAudioCodec codec = await _getAudioCodec(_recordingDevice!.id);
471471
await _initiateWebsocket(audioCodec: codec);
472-
});
473-
}
472+
return;
473+
}
474+
if (recordingState == RecordingState.record) {
475+
await _initiateWebsocket(audioCodec: BleAudioCodec.pcm16, sampleRate: 16000);
476+
return;
477+
}
478+
});
474479
}
475480

476481
@override

0 commit comments

Comments
 (0)