Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 31fd0d7f7a | |||
| 263835ad74 |
@@ -79,8 +79,8 @@ android {
|
|||||||
applicationId "com.ariacockpit"
|
applicationId "com.ariacockpit"
|
||||||
minSdkVersion rootProject.ext.minSdkVersion
|
minSdkVersion rootProject.ext.minSdkVersion
|
||||||
targetSdkVersion rootProject.ext.targetSdkVersion
|
targetSdkVersion rootProject.ext.targetSdkVersion
|
||||||
versionCode 10803
|
versionCode 10804
|
||||||
versionName "0.1.8.3"
|
versionName "0.1.8.4"
|
||||||
// Fallback fuer Libraries mit Product Flavors
|
// Fallback fuer Libraries mit Product Flavors
|
||||||
missingDimensionStrategy 'react-native-camera', 'general'
|
missingDimensionStrategy 'react-native-camera', 'general'
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "aria-cockpit",
|
"name": "aria-cockpit",
|
||||||
"version": "0.1.8.3",
|
"version": "0.1.8.4",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"android": "react-native run-android",
|
"android": "react-native run-android",
|
||||||
|
|||||||
@@ -1263,11 +1263,30 @@ const ChatScreen: React.FC = () => {
|
|||||||
return () => { unsubUpdate(); clearTimeout(timer); };
|
return () => { unsubUpdate(); clearTimeout(timer); };
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
// Gespraechsmodus: Nach TTS-Wiedergabe automatisch Aufnahme starten
|
// Gespraechsmodus: Nach TTS-Wiedergabe weiter im Multi-Turn (Conversation-
|
||||||
|
// Window) oder zurueck zu armed (Wake-Word lauscht wieder)?
|
||||||
|
//
|
||||||
|
// Foreground → resume() oeffnet das Mikro fuer N Sekunden Follow-Up
|
||||||
|
// (natuerlicher Dialog moeglich ohne erneutes "Computer")
|
||||||
|
// Background → endConversation() — Wake-Word direkt wieder armed.
|
||||||
|
//
|
||||||
|
// Grund: der setTimeout(800ms) in resume() wird im Doze stark verzoegert
|
||||||
|
// (siehe Wake-Detect-Bug von 0.1.7.0). Das hat zwei nervige Folgen:
|
||||||
|
// 1) Wake-Word ist solange "tot" — User kann ARIA nicht mehr triggern
|
||||||
|
// bis er die App vorholt
|
||||||
|
// 2) Wenn er die App dann vorholt, oeffnet der verspaetete Timer das
|
||||||
|
// Mikro — sieht aus wie ein Phantom-Wake-Word-Trigger
|
||||||
|
// Background = User nutzt das Handy anderweitig, das Multi-Turn-Konzept
|
||||||
|
// ist da eh nicht nuetzlich. Direkt re-armen ist robust und erwartungs-
|
||||||
|
// konform.
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const unsubPlayback = audioService.onPlaybackFinished(() => {
|
const unsubPlayback = audioService.onPlaybackFinished(() => {
|
||||||
if (wakeWordService.isActive()) {
|
if (!wakeWordService.isActive()) return;
|
||||||
|
if (AppState.currentState === 'active') {
|
||||||
wakeWordService.resume();
|
wakeWordService.resume();
|
||||||
|
} else {
|
||||||
|
console.log('[Chat] TTS fertig im Background → endConversation (kein Multi-Turn)');
|
||||||
|
wakeWordService.endConversation().catch(() => {});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
return () => unsubPlayback();
|
return () => unsubPlayback();
|
||||||
|
|||||||
Reference in New Issue
Block a user