From d4783a3497d6d74bb22744af59d8a1477fd54561 Mon Sep 17 00:00:00 2001 From: hailin Date: Tue, 24 Feb 2026 05:39:07 -0800 Subject: [PATCH] fix: use temp directory path for audio recording instead of empty string The record package requires a valid file path. Empty string caused ENOENT (No such file or directory) on Android. Co-Authored-By: Claude Opus 4.6 --- .../agent_call/presentation/pages/voice_test_page.dart | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/it0_app/lib/features/agent_call/presentation/pages/voice_test_page.dart b/it0_app/lib/features/agent_call/presentation/pages/voice_test_page.dart index 3458d0a..fd3be39 100644 --- a/it0_app/lib/features/agent_call/presentation/pages/voice_test_page.dart +++ b/it0_app/lib/features/agent_call/presentation/pages/voice_test_page.dart @@ -5,6 +5,8 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:dio/dio.dart'; import 'package:record/record.dart'; import 'package:flutter_sound/flutter_sound.dart'; +import 'package:path_provider/path_provider.dart'; +import 'package:path/path.dart' as p; import '../../../../core/network/dio_client.dart'; /// Temporary voice I/O test page — TTS + STT + Round-trip. @@ -119,6 +121,8 @@ class _VoiceTestPageState extends ConsumerState { _rtResult = ''; } }); + final dir = await getTemporaryDirectory(); + final filePath = p.join(dir.path, 'voice_test_${DateTime.now().millisecondsSinceEpoch}.wav'); await _recorder.start( const RecordConfig( encoder: AudioEncoder.wav, @@ -126,7 +130,7 @@ class _VoiceTestPageState extends ConsumerState { numChannels: 1, bitRate: 256000, ), - path: '', // temp file + path: filePath, ); }