@@ -111,6 +111,15 @@ class _Audio {
111111 audioSet : {
112112 // Android specific properties
113113 AudioEncoderAndroid : AudioEncoderAndroidType . AAC ,
114+ // Pin nitro-sound 0.2.10+'s bitrate to 128 kbps. Its `.high` quality
115+ // preset otherwise defaults to (48 kHz, 2ch, 192 kbps), a combination
116+ // the iOS hardware AAC encoder rejects with
117+ // kAudioFormatUnsupportedDataFormatError ('fmt?', OSStatus 1718449215)
118+ // in AppStore signed binaries.
119+ // https://www.osstatus.com/search/results?search=1718449215
120+ // Older nitro-sound and the legacy `react-native-audio-recorder-player`
121+ // ignore this key.
122+ AudioEncodingBitRate : 128000 ,
114123 AudioSourceAndroid : AudioSourceAndroidType . MIC ,
115124 OutputFormatAndroid : OutputFormatAndroidType . AAC_ADTS ,
116125
@@ -121,6 +130,11 @@ class _Audio {
121130 ? AVModeIOSOptionNitroSound . spokenaudio
122131 : AVModeIOSOption . spokenaudio ,
123132 AVNumberOfChannelsKeyIOS : 2 ,
133+ // Pair with `AudioEncodingBitRate` above override nitro-sound 0.2.10+'s
134+ // 48 kHz default back to 44.1 kHz so the encoder gets the combo that
135+ // 0.2.9 was implicitly using. Idempotent for older nitro-sound and the
136+ // legacy lib (their default is already 44.1 kHz).
137+ AVSampleRateKeyIOS : 44100 ,
124138 } ,
125139 isMeteringEnabled : true ,
126140 } ,
0 commit comments