@siteed/expo-audio-studio 2.14.3 → 2.14.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -8,6 +8,25 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
8
8
  ## [Unreleased]
9
9
 
10
10
 
11
+ ## [2.14.9] - 2025-07-15
12
+ ### Changed
13
+ - chore(expo-audio-studio): release @siteed/expo-audio-studio@2.14.8 ([4598073](https://github.com/deeeed/expo-audio-stream/commit/4598073062e05139bfa7d9ed80896c90359f0e18))
14
+ ## [2.14.8] - 2025-07-15
15
+ ### Changed
16
+ - chore(expo-audio-studio): release @siteed/expo-audio-studio@2.14.7 ([93c5a53](https://github.com/deeeed/expo-audio-stream/commit/93c5a53822b9115f0b3647e833320b5c7a6bd03f))
17
+ ## [2.14.7] - 2025-07-15
18
+ ### Changed
19
+ - chore(expo-audio-studio): release @siteed/expo-audio-studio@2.14.6 ([829a70e](https://github.com/deeeed/expo-audio-stream/commit/829a70e0ff8e077aa77197387f3a0b285e846fcd))
20
+ ## [2.14.6] - 2025-07-15
21
+ ### Changed
22
+ - chore(expo-audio-studio): release @siteed/expo-audio-studio@2.14.5 ([ee7e3ce](https://github.com/deeeed/expo-audio-stream/commit/ee7e3ce39696c8a806574a858473dd664d5ac435))
23
+ ## [2.14.5] - 2025-07-15
24
+ ### Changed
25
+ - chore(expo-audio-studio): release @siteed/expo-audio-studio@2.14.4 ([44848d7](https://github.com/deeeed/expo-audio-stream/commit/44848d7a0f62dcc2dd2fa6165dbe0ce965f95254))
26
+ ## [2.14.4] - 2025-07-15
27
+ ### Changed
28
+ - fix(plugin): respect enableDeviceDetection configuration for Android permissions ([32647c8](https://github.com/deeeed/expo-audio-stream/commit/32647c8d80bd33406f7dcabcf2823beaf3ba3b62))
29
+ - fix(audio-studio): add missing Bluetooth_ADMIN permission for device detection ([5a56900](https://github.com/deeeed/expo-audio-stream/commit/5a5690025a3c2ac279b853e21470015935b9a469))
11
30
  ## [2.14.3] - 2025-06-12
12
31
  ### Changed
13
32
  - refactor(AudioRecorderManager): remove analysis bit depth logging for cleaner debug output ([ddaf9e2](https://github.com/deeeed/expo-audio-stream/commit/ddaf9e25c0bf9bad1e3435b9ec08b3b4a27a6161))
@@ -330,7 +349,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
330
349
  - Feature: Audio features extraction during recording.
331
350
  - Feature: Consistent WAV PCM recording format across all platforms.
332
351
 
333
- [unreleased]: https://github.com/deeeed/expo-audio-stream/compare/@siteed/expo-audio-studio@2.14.3...HEAD
352
+ [unreleased]: https://github.com/deeeed/expo-audio-stream/compare/@siteed/expo-audio-studio@2.14.9...HEAD
353
+ [2.14.9]: https://github.com/deeeed/expo-audio-stream/compare/@siteed/expo-audio-studio@2.14.8...@siteed/expo-audio-studio@2.14.9
354
+ [2.14.8]: https://github.com/deeeed/expo-audio-stream/compare/@siteed/expo-audio-studio@2.14.7...@siteed/expo-audio-studio@2.14.8
355
+ [2.14.7]: https://github.com/deeeed/expo-audio-stream/compare/@siteed/expo-audio-studio@2.14.6...@siteed/expo-audio-studio@2.14.7
356
+ [2.14.6]: https://github.com/deeeed/expo-audio-stream/compare/@siteed/expo-audio-studio@2.14.5...@siteed/expo-audio-studio@2.14.6
357
+ [2.14.5]: https://github.com/deeeed/expo-audio-stream/compare/@siteed/expo-audio-studio@2.14.4...@siteed/expo-audio-studio@2.14.5
358
+ [2.14.4]: https://github.com/deeeed/expo-audio-stream/compare/@siteed/expo-audio-studio@2.14.3...@siteed/expo-audio-studio@2.14.4
334
359
  [2.14.3]: https://github.com/deeeed/expo-audio-stream/compare/@siteed/expo-audio-studio@2.14.2...@siteed/expo-audio-studio@2.14.3
335
360
  [2.14.2]: https://github.com/deeeed/expo-audio-stream/compare/@siteed/expo-audio-studio@2.14.1...@siteed/expo-audio-studio@2.14.2
336
361
  [2.14.1]: https://github.com/deeeed/expo-audio-stream/compare/@siteed/expo-audio-studio@2.14.0...@siteed/expo-audio-studio@2.14.1
@@ -1,19 +1,14 @@
1
1
  <?xml version="1.0" encoding="utf-8"?>
2
2
  <manifest xmlns:android="http://schemas.android.com/apk/res/android">
3
- <!-- Permissions will be merged into the app's manifest -->
3
+ <!-- Core permissions required for basic functionality -->
4
4
  <uses-permission android:name="android.permission.RECORD_AUDIO"/>
5
- <uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
6
- <uses-permission android:name="android.permission.FOREGROUND_SERVICE_MICROPHONE"/>
7
- <uses-permission android:name="android.permission.WAKE_LOCK" />
8
- <uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
9
5
 
10
- <!-- Bluetooth permissions for device detection -->
11
- <uses-permission android:name="android.permission.BLUETOOTH" />
12
- <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
13
- <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
14
-
15
- <!-- USB permission for USB device detection -->
16
- <uses-permission android:name="android.permission.USB_PERMISSION" />
6
+ <!-- All other permissions are handled conditionally by the plugin based on configuration:
7
+ - FOREGROUND_SERVICE & FOREGROUND_SERVICE_MICROPHONE & WAKE_LOCK: enableBackgroundAudio
8
+ - POST_NOTIFICATIONS: enableNotifications
9
+ - BLUETOOTH, BLUETOOTH_ADMIN, BLUETOOTH_CONNECT, USB_PERMISSION: enableDeviceDetection
10
+ - READ_PHONE_STATE: enablePhoneStateHandling
11
+ -->
17
12
 
18
13
  <application>
19
14
  <receiver
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@siteed/expo-audio-studio",
3
- "version": "2.14.3",
3
+ "version": "2.14.9",
4
4
  "description": "Comprehensive audio processing library for React Native and Expo with recording, analysis, visualization, and streaming capabilities across iOS, Android, and web",
5
5
  "license": "MIT",
6
6
  "type": "commonjs",
@@ -109,17 +109,17 @@ const withRecordingPermission = (config, props) => {
109
109
  });
110
110
  // Android Configuration
111
111
  config = (0, config_plugins_1.withAndroidManifest)(config, (config) => {
112
- const basePermissions = [
113
- 'android.permission.RECORD_AUDIO',
114
- 'android.permission.WAKE_LOCK',
115
- ];
112
+ const basePermissions = ['android.permission.RECORD_AUDIO'];
116
113
  const optionalPermissions = [
117
114
  enableNotifications && 'android.permission.POST_NOTIFICATIONS',
118
115
  enablePhoneStateHandling && 'android.permission.READ_PHONE_STATE', // Only add if enabled
119
116
  enableBackgroundAudio && 'android.permission.FOREGROUND_SERVICE',
120
- enableBackgroundAudio && 'android.permission.FOREGROUND_SERVICE_MICROPHONE',
117
+ enableBackgroundAudio &&
118
+ 'android.permission.FOREGROUND_SERVICE_MICROPHONE',
119
+ enableBackgroundAudio && 'android.permission.WAKE_LOCK', // Keep device awake during background recording
121
120
  // Device detection permissions (only if enabled)
122
121
  enableDeviceDetection && 'android.permission.BLUETOOTH',
122
+ enableDeviceDetection && 'android.permission.BLUETOOTH_ADMIN',
123
123
  enableDeviceDetection && 'android.permission.BLUETOOTH_CONNECT',
124
124
  enableDeviceDetection && 'android.permission.USB_PERMISSION',
125
125
  ].filter(Boolean);
@@ -109,17 +109,17 @@ const withRecordingPermission = (config, props) => {
109
109
  });
110
110
  // Android Configuration
111
111
  config = (0, config_plugins_1.withAndroidManifest)(config, (config) => {
112
- const basePermissions = [
113
- 'android.permission.RECORD_AUDIO',
114
- 'android.permission.WAKE_LOCK',
115
- ];
112
+ const basePermissions = ['android.permission.RECORD_AUDIO'];
116
113
  const optionalPermissions = [
117
114
  enableNotifications && 'android.permission.POST_NOTIFICATIONS',
118
115
  enablePhoneStateHandling && 'android.permission.READ_PHONE_STATE', // Only add if enabled
119
116
  enableBackgroundAudio && 'android.permission.FOREGROUND_SERVICE',
120
- enableBackgroundAudio && 'android.permission.FOREGROUND_SERVICE_MICROPHONE',
117
+ enableBackgroundAudio &&
118
+ 'android.permission.FOREGROUND_SERVICE_MICROPHONE',
119
+ enableBackgroundAudio && 'android.permission.WAKE_LOCK', // Keep device awake during background recording
121
120
  // Device detection permissions (only if enabled)
122
121
  enableDeviceDetection && 'android.permission.BLUETOOTH',
122
+ enableDeviceDetection && 'android.permission.BLUETOOTH_ADMIN',
123
123
  enableDeviceDetection && 'android.permission.BLUETOOTH_CONNECT',
124
124
  enableDeviceDetection && 'android.permission.USB_PERMISSION',
125
125
  ].filter(Boolean);
@@ -168,18 +168,18 @@ const withRecordingPermission: ConfigPlugin<AudioStreamPluginOptions> = (
168
168
 
169
169
  // Android Configuration
170
170
  config = withAndroidManifest(config as any, (config) => {
171
- const basePermissions = [
172
- 'android.permission.RECORD_AUDIO',
173
- 'android.permission.WAKE_LOCK',
174
- ]
171
+ const basePermissions = ['android.permission.RECORD_AUDIO']
175
172
 
176
173
  const optionalPermissions = [
177
174
  enableNotifications && 'android.permission.POST_NOTIFICATIONS',
178
175
  enablePhoneStateHandling && 'android.permission.READ_PHONE_STATE', // Only add if enabled
179
176
  enableBackgroundAudio && 'android.permission.FOREGROUND_SERVICE',
180
- enableBackgroundAudio && 'android.permission.FOREGROUND_SERVICE_MICROPHONE',
177
+ enableBackgroundAudio &&
178
+ 'android.permission.FOREGROUND_SERVICE_MICROPHONE',
179
+ enableBackgroundAudio && 'android.permission.WAKE_LOCK', // Keep device awake during background recording
181
180
  // Device detection permissions (only if enabled)
182
181
  enableDeviceDetection && 'android.permission.BLUETOOTH',
182
+ enableDeviceDetection && 'android.permission.BLUETOOTH_ADMIN',
183
183
  enableDeviceDetection && 'android.permission.BLUETOOTH_CONNECT',
184
184
  enableDeviceDetection && 'android.permission.USB_PERMISSION',
185
185
  ].filter(Boolean) as string[]
@@ -197,7 +197,10 @@ const withRecordingPermission: ConfigPlugin<AudioStreamPluginOptions> = (
197
197
 
198
198
  // Add each permission only if it doesn't exist
199
199
  permissionsToAdd.forEach((permission) => {
200
- AndroidConfig.Permissions.addPermission(config.modResults, permission)
200
+ AndroidConfig.Permissions.addPermission(
201
+ config.modResults,
202
+ permission
203
+ )
201
204
  })
202
205
 
203
206
  // Get the main application node