From f5e751c27a2586376548a46aed3dd075568ad18c Mon Sep 17 00:00:00 2001 From: Henry Heino <46334387+personalizedrefrigerator@users.noreply.github.com> Date: Tue, 27 May 2025 09:20:42 -0700 Subject: [PATCH] iOS: Fixes #12314: Fix error shown the first time a user attempts to record (#12328) --- .../components/voiceTyping/AudioRecordingBanner.tsx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/app-mobile/components/voiceTyping/AudioRecordingBanner.tsx b/packages/app-mobile/components/voiceTyping/AudioRecordingBanner.tsx index 97df561685..95fe01ddd2 100644 --- a/packages/app-mobile/components/voiceTyping/AudioRecordingBanner.tsx +++ b/packages/app-mobile/components/voiceTyping/AudioRecordingBanner.tsx @@ -14,7 +14,7 @@ import { Text } from 'react-native-paper'; import { AndroidAudioEncoder, AndroidOutputFormat, IOSAudioQuality, IOSOutputFormat, RecordingOptions } from 'expo-av/build/Audio'; import time from '@joplin/lib/time'; import { toFileExtension } from '@joplin/lib/mime-utils'; -import { formatMsToDurationCompat } from '@joplin/utils/time'; +import { formatMsToDurationCompat, msleep } from '@joplin/utils/time'; const logger = Logger.create('AudioRecording'); @@ -119,6 +119,11 @@ const useAudioRecorder = (onFileSaved: OnFileSavedCallback, onDismiss: ()=> void if (!response.granted) { throw new Error(_('Missing permission to record audio.')); } + + // Work around "This experience is currently in the background, so the audio session could not be activated" + // See https://github.com/expo/expo/issues/21782 + // May be resolved by migrating to expo-audio. + await msleep(500); } await Audio.setAudioModeAsync({