@siteed/expo-audio-studio 2.18.6 → 3.0.1

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.
Files changed (329) hide show
  1. package/README.md +13 -297
  2. package/index.d.ts +1 -0
  3. package/index.js +1 -0
  4. package/package.json +7 -136
  5. package/CHANGELOG.md +0 -501
  6. package/LICENSE +0 -21
  7. package/android/build.gradle +0 -129
  8. package/android/src/androidTest/assets/chorus.wav +0 -0
  9. package/android/src/androidTest/assets/jfk.wav +0 -0
  10. package/android/src/androidTest/assets/osr_us_000_0010_8k.wav +0 -0
  11. package/android/src/androidTest/assets/recorder_hello_world.wav +0 -0
  12. package/android/src/androidTest/java/net/siteed/audiostream/AudioProcessorInstrumentedTest.kt +0 -197
  13. package/android/src/androidTest/java/net/siteed/audiostream/AudioRecorderInstrumentedTest.kt +0 -541
  14. package/android/src/androidTest/java/net/siteed/audiostream/AudioRecorderPerformanceInstrumentedTest.kt +0 -234
  15. package/android/src/androidTest/java/net/siteed/audiostream/integration/AudioFocusStrategyIntegrationTest.kt +0 -332
  16. package/android/src/androidTest/java/net/siteed/audiostream/integration/BufferDurationIntegrationTest.kt +0 -324
  17. package/android/src/androidTest/java/net/siteed/audiostream/integration/CompressedOnlyOutputTest.kt +0 -253
  18. package/android/src/androidTest/java/net/siteed/audiostream/integration/DeviceDisconnectionFallbackTest.kt +0 -218
  19. package/android/src/androidTest/java/net/siteed/audiostream/integration/EventEmissionIntervalTest.kt +0 -120
  20. package/android/src/androidTest/java/net/siteed/audiostream/integration/M4aFormatTest.kt +0 -345
  21. package/android/src/androidTest/java/net/siteed/audiostream/integration/OutputControlIntegrationTest.kt +0 -340
  22. package/android/src/androidTest/java/net/siteed/audiostream/integration/PcmStreamingDurationTest.kt +0 -252
  23. package/android/src/androidTest/java/net/siteed/audiostream/integration/README.md +0 -95
  24. package/android/src/androidTest/java/net/siteed/audiostream/integration/run_integration_tests.sh +0 -43
  25. package/android/src/main/AndroidManifest.xml +0 -30
  26. package/android/src/main/java/net/siteed/audiostream/AudioAnalysisData.kt +0 -188
  27. package/android/src/main/java/net/siteed/audiostream/AudioDataEncoder.kt +0 -9
  28. package/android/src/main/java/net/siteed/audiostream/AudioDeviceManager.kt +0 -1741
  29. package/android/src/main/java/net/siteed/audiostream/AudioFileHandler.kt +0 -136
  30. package/android/src/main/java/net/siteed/audiostream/AudioFormatUtils.kt +0 -354
  31. package/android/src/main/java/net/siteed/audiostream/AudioNotificationsManager.kt +0 -439
  32. package/android/src/main/java/net/siteed/audiostream/AudioProcessor.kt +0 -2237
  33. package/android/src/main/java/net/siteed/audiostream/AudioRecorderManager.kt +0 -2141
  34. package/android/src/main/java/net/siteed/audiostream/AudioRecordingService.kt +0 -167
  35. package/android/src/main/java/net/siteed/audiostream/AudioTrimmer.kt +0 -1099
  36. package/android/src/main/java/net/siteed/audiostream/Constants.kt +0 -37
  37. package/android/src/main/java/net/siteed/audiostream/EventSender.kt +0 -7
  38. package/android/src/main/java/net/siteed/audiostream/ExpoAudioStreamModule.kt +0 -1113
  39. package/android/src/main/java/net/siteed/audiostream/FFT.kt +0 -99
  40. package/android/src/main/java/net/siteed/audiostream/Features.kt +0 -98
  41. package/android/src/main/java/net/siteed/audiostream/LogUtils.kt +0 -93
  42. package/android/src/main/java/net/siteed/audiostream/NotificationConfig.kt +0 -72
  43. package/android/src/main/java/net/siteed/audiostream/PermissionUtils.kt +0 -68
  44. package/android/src/main/java/net/siteed/audiostream/RecordingActionReceiver.kt +0 -59
  45. package/android/src/main/java/net/siteed/audiostream/RecordingConfig.kt +0 -257
  46. package/android/src/main/java/net/siteed/audiostream/WaveformConfig.kt +0 -19
  47. package/android/src/main/java/net/siteed/audiostream/WaveformRenderer.kt +0 -159
  48. package/android/src/main/res/drawable/ic_default_action_icon.xml +0 -16
  49. package/android/src/main/res/drawable/ic_microphone.xml +0 -13
  50. package/android/src/main/res/drawable/ic_pause.xml +0 -10
  51. package/android/src/main/res/drawable/ic_play.xml +0 -10
  52. package/android/src/main/res/drawable/ic_stop.xml +0 -10
  53. package/android/src/main/res/layout/notification_recording.xml +0 -37
  54. package/android/src/test/java/net/siteed/audiostream/AudioFileHandlerTest.kt +0 -279
  55. package/android/src/test/java/net/siteed/audiostream/AudioFocusStrategyTest.kt +0 -249
  56. package/android/src/test/java/net/siteed/audiostream/AudioFormatTest.kt +0 -151
  57. package/android/src/test/java/net/siteed/audiostream/AudioFormatUtilsTest.kt +0 -273
  58. package/android/src/test/java/net/siteed/audiostream/DeviceDisconnectionFallbackUnitTest.kt +0 -140
  59. package/android/src/test/resources/chorus.wav +0 -0
  60. package/android/src/test/resources/generate_test_audio.py +0 -94
  61. package/android/src/test/resources/jfk.wav +0 -0
  62. package/android/src/test/resources/osr_us_000_0010_8k.wav +0 -0
  63. package/android/src/test/resources/recorder_hello_world.wav +0 -0
  64. package/app.plugin.js +0 -3
  65. package/build/cjs/AudioAnalysis/AudioAnalysis.types.js +0 -4
  66. package/build/cjs/AudioAnalysis/AudioAnalysis.types.js.map +0 -1
  67. package/build/cjs/AudioAnalysis/extractAudioAnalysis.js +0 -210
  68. package/build/cjs/AudioAnalysis/extractAudioAnalysis.js.map +0 -1
  69. package/build/cjs/AudioAnalysis/extractAudioData.js +0 -21
  70. package/build/cjs/AudioAnalysis/extractAudioData.js.map +0 -1
  71. package/build/cjs/AudioAnalysis/extractMelSpectrogram.js +0 -92
  72. package/build/cjs/AudioAnalysis/extractMelSpectrogram.js.map +0 -1
  73. package/build/cjs/AudioAnalysis/extractPreview.js +0 -28
  74. package/build/cjs/AudioAnalysis/extractPreview.js.map +0 -1
  75. package/build/cjs/AudioAnalysis/extractWaveform.js +0 -18
  76. package/build/cjs/AudioAnalysis/extractWaveform.js.map +0 -1
  77. package/build/cjs/AudioDeviceManager.js +0 -689
  78. package/build/cjs/AudioDeviceManager.js.map +0 -1
  79. package/build/cjs/AudioRecorder.provider.js +0 -78
  80. package/build/cjs/AudioRecorder.provider.js.map +0 -1
  81. package/build/cjs/ExpoAudioStream.native.js +0 -8
  82. package/build/cjs/ExpoAudioStream.native.js.map +0 -1
  83. package/build/cjs/ExpoAudioStream.types.js +0 -11
  84. package/build/cjs/ExpoAudioStream.types.js.map +0 -1
  85. package/build/cjs/ExpoAudioStream.web.js +0 -708
  86. package/build/cjs/ExpoAudioStream.web.js.map +0 -1
  87. package/build/cjs/ExpoAudioStreamModule.js +0 -718
  88. package/build/cjs/ExpoAudioStreamModule.js.map +0 -1
  89. package/build/cjs/WebRecorder.web.js +0 -777
  90. package/build/cjs/WebRecorder.web.js.map +0 -1
  91. package/build/cjs/constants/platformLimitations.js +0 -99
  92. package/build/cjs/constants/platformLimitations.js.map +0 -1
  93. package/build/cjs/constants.js +0 -17
  94. package/build/cjs/constants.js.map +0 -1
  95. package/build/cjs/events.js +0 -29
  96. package/build/cjs/events.js.map +0 -1
  97. package/build/cjs/hooks/useAudioDevices.js +0 -179
  98. package/build/cjs/hooks/useAudioDevices.js.map +0 -1
  99. package/build/cjs/index.js +0 -58
  100. package/build/cjs/index.js.map +0 -1
  101. package/build/cjs/trimAudio.js +0 -76
  102. package/build/cjs/trimAudio.js.map +0 -1
  103. package/build/cjs/useAudioRecorder.js +0 -518
  104. package/build/cjs/useAudioRecorder.js.map +0 -1
  105. package/build/cjs/utils/BlobFix.js +0 -502
  106. package/build/cjs/utils/BlobFix.js.map +0 -1
  107. package/build/cjs/utils/audioProcessing.js +0 -136
  108. package/build/cjs/utils/audioProcessing.js.map +0 -1
  109. package/build/cjs/utils/cleanNativeOptions.js +0 -22
  110. package/build/cjs/utils/cleanNativeOptions.js.map +0 -1
  111. package/build/cjs/utils/concatenateBuffers.js +0 -25
  112. package/build/cjs/utils/concatenateBuffers.js.map +0 -1
  113. package/build/cjs/utils/convertPCMToFloat32.js +0 -124
  114. package/build/cjs/utils/convertPCMToFloat32.js.map +0 -1
  115. package/build/cjs/utils/crc32.js +0 -52
  116. package/build/cjs/utils/crc32.js.map +0 -1
  117. package/build/cjs/utils/encodingToBitDepth.js +0 -17
  118. package/build/cjs/utils/encodingToBitDepth.js.map +0 -1
  119. package/build/cjs/utils/getWavFileInfo.js +0 -96
  120. package/build/cjs/utils/getWavFileInfo.js.map +0 -1
  121. package/build/cjs/utils/writeWavHeader.js +0 -88
  122. package/build/cjs/utils/writeWavHeader.js.map +0 -1
  123. package/build/cjs/workers/InlineFeaturesExtractor.web.js +0 -859
  124. package/build/cjs/workers/InlineFeaturesExtractor.web.js.map +0 -1
  125. package/build/cjs/workers/inlineAudioWebWorker.web.js +0 -184
  126. package/build/cjs/workers/inlineAudioWebWorker.web.js.map +0 -1
  127. package/build/esm/AudioAnalysis/AudioAnalysis.types.js +0 -3
  128. package/build/esm/AudioAnalysis/AudioAnalysis.types.js.map +0 -1
  129. package/build/esm/AudioAnalysis/extractAudioAnalysis.js +0 -202
  130. package/build/esm/AudioAnalysis/extractAudioAnalysis.js.map +0 -1
  131. package/build/esm/AudioAnalysis/extractAudioData.js +0 -14
  132. package/build/esm/AudioAnalysis/extractAudioData.js.map +0 -1
  133. package/build/esm/AudioAnalysis/extractMelSpectrogram.js +0 -89
  134. package/build/esm/AudioAnalysis/extractMelSpectrogram.js.map +0 -1
  135. package/build/esm/AudioAnalysis/extractPreview.js +0 -25
  136. package/build/esm/AudioAnalysis/extractPreview.js.map +0 -1
  137. package/build/esm/AudioAnalysis/extractWaveform.js +0 -11
  138. package/build/esm/AudioAnalysis/extractWaveform.js.map +0 -1
  139. package/build/esm/AudioDeviceManager.js +0 -682
  140. package/build/esm/AudioDeviceManager.js.map +0 -1
  141. package/build/esm/AudioRecorder.provider.js +0 -40
  142. package/build/esm/AudioRecorder.provider.js.map +0 -1
  143. package/build/esm/ExpoAudioStream.native.js +0 -6
  144. package/build/esm/ExpoAudioStream.native.js.map +0 -1
  145. package/build/esm/ExpoAudioStream.types.js +0 -8
  146. package/build/esm/ExpoAudioStream.types.js.map +0 -1
  147. package/build/esm/ExpoAudioStream.web.js +0 -704
  148. package/build/esm/ExpoAudioStream.web.js.map +0 -1
  149. package/build/esm/ExpoAudioStreamModule.js +0 -713
  150. package/build/esm/ExpoAudioStreamModule.js.map +0 -1
  151. package/build/esm/WebRecorder.web.js +0 -773
  152. package/build/esm/WebRecorder.web.js.map +0 -1
  153. package/build/esm/constants/platformLimitations.js +0 -90
  154. package/build/esm/constants/platformLimitations.js.map +0 -1
  155. package/build/esm/constants.js +0 -14
  156. package/build/esm/constants.js.map +0 -1
  157. package/build/esm/events.js +0 -21
  158. package/build/esm/events.js.map +0 -1
  159. package/build/esm/hooks/useAudioDevices.js +0 -176
  160. package/build/esm/hooks/useAudioDevices.js.map +0 -1
  161. package/build/esm/index.js +0 -20
  162. package/build/esm/index.js.map +0 -1
  163. package/build/esm/trimAudio.js +0 -69
  164. package/build/esm/trimAudio.js.map +0 -1
  165. package/build/esm/useAudioRecorder.js +0 -512
  166. package/build/esm/useAudioRecorder.js.map +0 -1
  167. package/build/esm/utils/BlobFix.js +0 -498
  168. package/build/esm/utils/BlobFix.js.map +0 -1
  169. package/build/esm/utils/audioProcessing.js +0 -133
  170. package/build/esm/utils/audioProcessing.js.map +0 -1
  171. package/build/esm/utils/cleanNativeOptions.js +0 -19
  172. package/build/esm/utils/cleanNativeOptions.js.map +0 -1
  173. package/build/esm/utils/concatenateBuffers.js +0 -21
  174. package/build/esm/utils/concatenateBuffers.js.map +0 -1
  175. package/build/esm/utils/convertPCMToFloat32.js +0 -120
  176. package/build/esm/utils/convertPCMToFloat32.js.map +0 -1
  177. package/build/esm/utils/crc32.js +0 -50
  178. package/build/esm/utils/crc32.js.map +0 -1
  179. package/build/esm/utils/encodingToBitDepth.js +0 -13
  180. package/build/esm/utils/encodingToBitDepth.js.map +0 -1
  181. package/build/esm/utils/getWavFileInfo.js +0 -92
  182. package/build/esm/utils/getWavFileInfo.js.map +0 -1
  183. package/build/esm/utils/writeWavHeader.js +0 -84
  184. package/build/esm/utils/writeWavHeader.js.map +0 -1
  185. package/build/esm/workers/InlineFeaturesExtractor.web.js +0 -856
  186. package/build/esm/workers/InlineFeaturesExtractor.web.js.map +0 -1
  187. package/build/esm/workers/inlineAudioWebWorker.web.js +0 -181
  188. package/build/esm/workers/inlineAudioWebWorker.web.js.map +0 -1
  189. package/build/types/AudioAnalysis/AudioAnalysis.types.d.ts +0 -196
  190. package/build/types/AudioAnalysis/AudioAnalysis.types.d.ts.map +0 -1
  191. package/build/types/AudioAnalysis/extractAudioAnalysis.d.ts +0 -74
  192. package/build/types/AudioAnalysis/extractAudioAnalysis.d.ts.map +0 -1
  193. package/build/types/AudioAnalysis/extractAudioData.d.ts +0 -3
  194. package/build/types/AudioAnalysis/extractAudioData.d.ts.map +0 -1
  195. package/build/types/AudioAnalysis/extractMelSpectrogram.d.ts +0 -14
  196. package/build/types/AudioAnalysis/extractMelSpectrogram.d.ts.map +0 -1
  197. package/build/types/AudioAnalysis/extractPreview.d.ts +0 -11
  198. package/build/types/AudioAnalysis/extractPreview.d.ts.map +0 -1
  199. package/build/types/AudioAnalysis/extractWaveform.d.ts +0 -8
  200. package/build/types/AudioAnalysis/extractWaveform.d.ts.map +0 -1
  201. package/build/types/AudioDeviceManager.d.ts +0 -187
  202. package/build/types/AudioDeviceManager.d.ts.map +0 -1
  203. package/build/types/AudioRecorder.provider.d.ts +0 -11
  204. package/build/types/AudioRecorder.provider.d.ts.map +0 -1
  205. package/build/types/ExpoAudioStream.native.d.ts +0 -3
  206. package/build/types/ExpoAudioStream.native.d.ts.map +0 -1
  207. package/build/types/ExpoAudioStream.types.d.ts +0 -738
  208. package/build/types/ExpoAudioStream.types.d.ts.map +0 -1
  209. package/build/types/ExpoAudioStream.web.d.ts +0 -96
  210. package/build/types/ExpoAudioStream.web.d.ts.map +0 -1
  211. package/build/types/ExpoAudioStreamModule.d.ts +0 -3
  212. package/build/types/ExpoAudioStreamModule.d.ts.map +0 -1
  213. package/build/types/WebRecorder.web.d.ts +0 -198
  214. package/build/types/WebRecorder.web.d.ts.map +0 -1
  215. package/build/types/constants/platformLimitations.d.ts +0 -40
  216. package/build/types/constants/platformLimitations.d.ts.map +0 -1
  217. package/build/types/constants.d.ts +0 -11
  218. package/build/types/constants.d.ts.map +0 -1
  219. package/build/types/events.d.ts +0 -26
  220. package/build/types/events.d.ts.map +0 -1
  221. package/build/types/hooks/useAudioDevices.d.ts +0 -15
  222. package/build/types/hooks/useAudioDevices.d.ts.map +0 -1
  223. package/build/types/index.d.ts +0 -18
  224. package/build/types/index.d.ts.map +0 -1
  225. package/build/types/trimAudio.d.ts +0 -25
  226. package/build/types/trimAudio.d.ts.map +0 -1
  227. package/build/types/useAudioRecorder.d.ts +0 -22
  228. package/build/types/useAudioRecorder.d.ts.map +0 -1
  229. package/build/types/utils/BlobFix.d.ts +0 -9
  230. package/build/types/utils/BlobFix.d.ts.map +0 -1
  231. package/build/types/utils/audioProcessing.d.ts +0 -24
  232. package/build/types/utils/audioProcessing.d.ts.map +0 -1
  233. package/build/types/utils/cleanNativeOptions.d.ts +0 -15
  234. package/build/types/utils/cleanNativeOptions.d.ts.map +0 -1
  235. package/build/types/utils/concatenateBuffers.d.ts +0 -8
  236. package/build/types/utils/concatenateBuffers.d.ts.map +0 -1
  237. package/build/types/utils/convertPCMToFloat32.d.ts +0 -13
  238. package/build/types/utils/convertPCMToFloat32.d.ts.map +0 -1
  239. package/build/types/utils/crc32.d.ts +0 -7
  240. package/build/types/utils/crc32.d.ts.map +0 -1
  241. package/build/types/utils/encodingToBitDepth.d.ts +0 -5
  242. package/build/types/utils/encodingToBitDepth.d.ts.map +0 -1
  243. package/build/types/utils/getWavFileInfo.d.ts +0 -26
  244. package/build/types/utils/getWavFileInfo.d.ts.map +0 -1
  245. package/build/types/utils/writeWavHeader.d.ts +0 -34
  246. package/build/types/utils/writeWavHeader.d.ts.map +0 -1
  247. package/build/types/workers/InlineFeaturesExtractor.web.d.ts +0 -2
  248. package/build/types/workers/InlineFeaturesExtractor.web.d.ts.map +0 -1
  249. package/build/types/workers/inlineAudioWebWorker.web.d.ts +0 -2
  250. package/build/types/workers/inlineAudioWebWorker.web.d.ts.map +0 -1
  251. package/expo-module.config.json +0 -10
  252. package/ios/AudioAnalysisData.swift +0 -74
  253. package/ios/AudioDeviceManager.swift +0 -670
  254. package/ios/AudioNotificationManager.swift +0 -154
  255. package/ios/AudioProcessingHelpers.swift +0 -743
  256. package/ios/AudioProcessor.swift +0 -1151
  257. package/ios/AudioStreamError.swift +0 -7
  258. package/ios/AudioStreamManager.swift +0 -2369
  259. package/ios/AudioStreamManagerDelegate.swift +0 -16
  260. package/ios/DataPoint.swift +0 -54
  261. package/ios/DecodingConfig.swift +0 -59
  262. package/ios/ExpoAudioStream.podspec +0 -33
  263. package/ios/ExpoAudioStreamModule.swift +0 -1019
  264. package/ios/ExpoAudioStudioTests/AudioFileHandlerTests.swift +0 -338
  265. package/ios/ExpoAudioStudioTests/AudioFormatUtilsTests.swift +0 -331
  266. package/ios/ExpoAudioStudioTests/AudioTestHelpers.swift +0 -130
  267. package/ios/ExpoAudioStudioTests/CompressedOnlyOutputTests.swift +0 -294
  268. package/ios/ExpoAudioStudioTests/EventEmissionIntervalTests.swift +0 -105
  269. package/ios/ExpoAudioStudioTests/Info.plist +0 -22
  270. package/ios/ExpoAudioStudioTests/README.md +0 -39
  271. package/ios/ExpoAudioStudioTests/SimpleAudioTest.swift +0 -98
  272. package/ios/ExpoAudioStudioTests/TestAudioGenerator.swift +0 -75
  273. package/ios/FFT.swift +0 -62
  274. package/ios/Features.swift +0 -95
  275. package/ios/ISSUE_IOS.md +0 -68
  276. package/ios/Logger.swift +0 -39
  277. package/ios/NotificationExtension.swift +0 -15
  278. package/ios/RecordingResult.swift +0 -22
  279. package/ios/RecordingSettings.swift +0 -308
  280. package/ios/WaveformExtractor.swift +0 -105
  281. package/ios/tests/README.md +0 -41
  282. package/ios/tests/integration/buffer_and_fallback_test.swift +0 -178
  283. package/ios/tests/integration/buffer_duration_test.swift +0 -185
  284. package/ios/tests/integration/compressed_only_output_test.swift +0 -271
  285. package/ios/tests/integration/output_control_test.swift +0 -322
  286. package/ios/tests/integration/run_integration_tests.sh +0 -37
  287. package/ios/tests/opus_support_test_macos.swift +0 -154
  288. package/ios/tests/standalone/audio_processing_test.swift +0 -144
  289. package/ios/tests/standalone/audio_recording_test.swift +0 -277
  290. package/ios/tests/standalone/audio_streaming_test.swift +0 -249
  291. package/ios/tests/standalone/standalone_test.swift +0 -144
  292. package/plugin/build/index.cjs +0 -194
  293. package/plugin/build/index.d.cts +0 -22
  294. package/plugin/build/index.js +0 -194
  295. package/plugin/src/index.ts +0 -285
  296. package/plugin/tsconfig.json +0 -10
  297. package/plugin/tsconfig.tsbuildinfo +0 -1
  298. package/src/AudioAnalysis/AudioAnalysis.types.ts +0 -224
  299. package/src/AudioAnalysis/extractAudioAnalysis.ts +0 -344
  300. package/src/AudioAnalysis/extractAudioData.ts +0 -17
  301. package/src/AudioAnalysis/extractMelSpectrogram.ts +0 -154
  302. package/src/AudioAnalysis/extractPreview.ts +0 -34
  303. package/src/AudioAnalysis/extractWaveform.ts +0 -22
  304. package/src/AudioDeviceManager.ts +0 -803
  305. package/src/AudioRecorder.provider.tsx +0 -57
  306. package/src/ExpoAudioStream.native.ts +0 -6
  307. package/src/ExpoAudioStream.types.ts +0 -874
  308. package/src/ExpoAudioStream.web.ts +0 -905
  309. package/src/ExpoAudioStreamModule.ts +0 -990
  310. package/src/WebRecorder.web.ts +0 -1005
  311. package/src/constants/platformLimitations.ts +0 -118
  312. package/src/constants.ts +0 -18
  313. package/src/events.ts +0 -60
  314. package/src/hooks/useAudioDevices.ts +0 -213
  315. package/src/index.ts +0 -54
  316. package/src/trimAudio.ts +0 -94
  317. package/src/types/crc-32.d.ts +0 -9
  318. package/src/useAudioRecorder.tsx +0 -766
  319. package/src/utils/BlobFix.ts +0 -561
  320. package/src/utils/audioProcessing.ts +0 -205
  321. package/src/utils/cleanNativeOptions.ts +0 -18
  322. package/src/utils/concatenateBuffers.ts +0 -24
  323. package/src/utils/convertPCMToFloat32.ts +0 -170
  324. package/src/utils/crc32.ts +0 -59
  325. package/src/utils/encodingToBitDepth.ts +0 -18
  326. package/src/utils/getWavFileInfo.ts +0 -132
  327. package/src/utils/writeWavHeader.ts +0 -115
  328. package/src/workers/InlineFeaturesExtractor.web.tsx +0 -855
  329. package/src/workers/inlineAudioWebWorker.web.tsx +0 -180
@@ -1,194 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const config_plugins_1 = require("@expo/config-plugins");
4
- const MICROPHONE_USAGE = 'Allow $(PRODUCT_NAME) to access your microphone';
5
- const NOTIFICATION_USAGE = 'Show recording notifications and controls';
6
- const LOG_PREFIX = '[@siteed/expo-audio-studio]';
7
- function debugLog(message, ...args) {
8
- if (process.env.EXPO_DEBUG) {
9
- console.log(`${LOG_PREFIX} ${message}`, ...args);
10
- }
11
- }
12
- const withRecordingPermission = (config, props) => {
13
- const options = {
14
- enablePhoneStateHandling: true, // Default to true for backward compatibility
15
- enableNotifications: true,
16
- enableBackgroundAudio: true,
17
- enableDeviceDetection: true, // Default to true for backward compatibility
18
- iosBackgroundModes: {
19
- useVoIP: false,
20
- useAudio: false,
21
- useProcessing: false,
22
- useLocation: false,
23
- useExternalAccessory: false,
24
- },
25
- iosConfig: {
26
- microphoneUsageDescription: MICROPHONE_USAGE,
27
- notificationUsageDescription: NOTIFICATION_USAGE,
28
- },
29
- ...(props || {}),
30
- };
31
- const { enablePhoneStateHandling, enableNotifications, enableBackgroundAudio, enableDeviceDetection, } = options;
32
- debugLog('📱 Configuring Recording Permissions Plugin...', options);
33
- // iOS Configuration
34
- config = (0, config_plugins_1.withInfoPlist)(config, (config) => {
35
- // Always set the microphone usage description from options first
36
- config.modResults['NSMicrophoneUsageDescription'] =
37
- options.iosConfig?.microphoneUsageDescription ||
38
- config.modResults['NSMicrophoneUsageDescription'] ||
39
- MICROPHONE_USAGE;
40
- if (enableNotifications) {
41
- config.modResults['NSUserNotificationsUsageDescription'] =
42
- options.iosConfig?.notificationUsageDescription ||
43
- config.modResults['NSUserNotificationsUsageDescription'] ||
44
- NOTIFICATION_USAGE;
45
- config.modResults['NSUserNotificationAlertStyle'] = 'alert';
46
- }
47
- const existingBackgroundModes = config.modResults.UIBackgroundModes || [];
48
- // If background audio is enabled with useAudio, add the audio background mode
49
- if (options.iosBackgroundModes?.useAudio === true &&
50
- enableBackgroundAudio === true &&
51
- !existingBackgroundModes.includes('audio')) {
52
- // Add 'audio' background mode - REQUIRED for background recording
53
- existingBackgroundModes.push('audio');
54
- debugLog('✅ Added audio background mode for iOS background recording');
55
- // Also ensure processing mode is recommended
56
- if (options.iosBackgroundModes?.useProcessing !== true) {
57
- console.warn(`${LOG_PREFIX} Warning: Background audio recording works best with both 'audio' and 'processing' background modes. Consider enabling 'useProcessing' in iosBackgroundModes.`);
58
- }
59
- }
60
- if (options.iosBackgroundModes?.useVoIP === true &&
61
- enablePhoneStateHandling === true) {
62
- if (!existingBackgroundModes.includes('voip')) {
63
- existingBackgroundModes.push('voip');
64
- }
65
- const existingCapabilities = (config.modResults
66
- .UIRequiredDeviceCapabilities || []);
67
- if (!existingCapabilities.includes('telephony')) {
68
- existingCapabilities.push('telephony');
69
- }
70
- config.modResults.UIRequiredDeviceCapabilities =
71
- existingCapabilities;
72
- }
73
- // Add additional background modes only if explicitly set to true
74
- if (options.iosBackgroundModes?.useProcessing === true) {
75
- if (!existingBackgroundModes.includes('processing')) {
76
- existingBackgroundModes.push('processing');
77
- }
78
- // Add processing info if enabled
79
- // Note: We keep the 'audiostream' namespace for native modules to maintain compatibility
80
- config.modResults.BGTaskSchedulerPermittedIdentifiers = [
81
- 'com.siteed.audiostream.processing',
82
- ];
83
- }
84
- if (options.iosBackgroundModes?.useLocation === true) {
85
- if (!existingBackgroundModes.includes('location')) {
86
- existingBackgroundModes.push('location');
87
- }
88
- }
89
- if (options.iosBackgroundModes?.useExternalAccessory === true) {
90
- if (!existingBackgroundModes.includes('external-accessory')) {
91
- existingBackgroundModes.push('external-accessory');
92
- }
93
- }
94
- // Configure background processing info if enabled
95
- if (options.iosConfig?.backgroundProcessingTitle) {
96
- config.modResults.BGProcessingTaskTitle =
97
- options.iosConfig.backgroundProcessingTitle;
98
- }
99
- // Configure audio session behavior
100
- if (options.iosConfig?.allowBackgroundAudioControls) {
101
- config.modResults.UIBackgroundModes = [
102
- ...existingBackgroundModes,
103
- 'remote-notification',
104
- ];
105
- config.modResults.MPNowPlayingInfoPropertyPlaybackRate = true;
106
- }
107
- config.modResults.UIBackgroundModes = existingBackgroundModes;
108
- return config;
109
- });
110
- // Android Configuration
111
- config = (0, config_plugins_1.withAndroidManifest)(config, (config) => {
112
- const basePermissions = ['android.permission.RECORD_AUDIO'];
113
- const optionalPermissions = [
114
- enableNotifications && 'android.permission.POST_NOTIFICATIONS',
115
- enablePhoneStateHandling && 'android.permission.READ_PHONE_STATE', // Only add if enabled
116
- enableBackgroundAudio && 'android.permission.FOREGROUND_SERVICE',
117
- enableBackgroundAudio &&
118
- 'android.permission.FOREGROUND_SERVICE_MICROPHONE',
119
- enableBackgroundAudio && 'android.permission.WAKE_LOCK', // Keep device awake during background recording
120
- // Device detection permissions (only if enabled)
121
- enableDeviceDetection && 'android.permission.BLUETOOTH',
122
- enableDeviceDetection && 'android.permission.BLUETOOTH_ADMIN',
123
- enableDeviceDetection && 'android.permission.BLUETOOTH_CONNECT',
124
- enableDeviceDetection && 'android.permission.USB_PERMISSION',
125
- ].filter(Boolean);
126
- const permissionsToAdd = [...basePermissions, ...optionalPermissions];
127
- debugLog('📋 Existing Android permissions:', config.modResults.manifest['uses-permission']?.map((p) => p.$?.['android:name']) || []);
128
- debugLog('➕ Adding Android permissions:', permissionsToAdd);
129
- // Add each permission only if it doesn't exist
130
- permissionsToAdd.forEach((permission) => {
131
- config_plugins_1.AndroidConfig.Permissions.addPermission(config.modResults, permission);
132
- });
133
- // Get the main application node
134
- const mainApplication = config.modResults.manifest.application?.[0];
135
- if (mainApplication) {
136
- debugLog('📱 Configuring Android application components...');
137
- // Add RecordingActionReceiver
138
- if (!mainApplication.receiver) {
139
- mainApplication.receiver = [];
140
- }
141
- const receiverConfig = {
142
- $: {
143
- 'android:name': '.RecordingActionReceiver',
144
- 'android:exported': 'false',
145
- },
146
- 'intent-filter': [
147
- {
148
- action: [
149
- { $: { 'android:name': 'PAUSE_RECORDING' } },
150
- { $: { 'android:name': 'RESUME_RECORDING' } },
151
- { $: { 'android:name': 'STOP_RECORDING' } },
152
- ],
153
- },
154
- ],
155
- };
156
- const receiverIndex = mainApplication.receiver.findIndex((receiver) => receiver.$?.['android:name'] === '.RecordingActionReceiver');
157
- if (receiverIndex >= 0) {
158
- mainApplication.receiver[receiverIndex] = receiverConfig;
159
- }
160
- else {
161
- mainApplication.receiver.push(receiverConfig);
162
- }
163
- debugLog('✅ RecordingActionReceiver configured');
164
- // Add AudioRecordingService
165
- if (!mainApplication.service) {
166
- mainApplication.service = [];
167
- }
168
- const serviceConfig = {
169
- $: {
170
- 'android:name': '.AudioRecordingService',
171
- 'android:enabled': 'true',
172
- 'android:exported': 'false',
173
- 'android:foregroundServiceType': 'microphone',
174
- },
175
- };
176
- const serviceIndex = mainApplication.service.findIndex((service) => service.$?.['android:name'] === '.AudioRecordingService');
177
- if (serviceIndex >= 0) {
178
- mainApplication.service[serviceIndex] = serviceConfig;
179
- }
180
- else {
181
- mainApplication.service.push(serviceConfig);
182
- }
183
- debugLog('✅ AudioRecordingService configured');
184
- }
185
- else {
186
- console.error(`${LOG_PREFIX} ❌ Main application node not found in Android Manifest`);
187
- }
188
- return config;
189
- });
190
- debugLog('✨ Recording Permissions Plugin configuration completed');
191
- return config;
192
- };
193
- // Export as default
194
- exports.default = withRecordingPermission;
@@ -1,22 +0,0 @@
1
- import { ConfigPlugin } from '@expo/config-plugins';
2
- interface AudioStreamPluginOptions {
3
- enablePhoneStateHandling?: boolean;
4
- enableNotifications?: boolean;
5
- enableBackgroundAudio?: boolean;
6
- enableDeviceDetection?: boolean;
7
- iosBackgroundModes?: {
8
- useVoIP?: boolean;
9
- useAudio?: boolean;
10
- useProcessing?: boolean;
11
- useLocation?: boolean;
12
- useExternalAccessory?: boolean;
13
- };
14
- iosConfig?: {
15
- allowBackgroundAudioControls?: boolean;
16
- backgroundProcessingTitle?: string;
17
- microphoneUsageDescription?: string;
18
- notificationUsageDescription?: string;
19
- };
20
- }
21
- declare const withRecordingPermission: ConfigPlugin<AudioStreamPluginOptions>;
22
- export default withRecordingPermission;
@@ -1,194 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const config_plugins_1 = require("@expo/config-plugins");
4
- const MICROPHONE_USAGE = 'Allow $(PRODUCT_NAME) to access your microphone';
5
- const NOTIFICATION_USAGE = 'Show recording notifications and controls';
6
- const LOG_PREFIX = '[@siteed/expo-audio-studio]';
7
- function debugLog(message, ...args) {
8
- if (process.env.EXPO_DEBUG) {
9
- console.log(`${LOG_PREFIX} ${message}`, ...args);
10
- }
11
- }
12
- const withRecordingPermission = (config, props) => {
13
- const options = {
14
- enablePhoneStateHandling: true, // Default to true for backward compatibility
15
- enableNotifications: true,
16
- enableBackgroundAudio: true,
17
- enableDeviceDetection: true, // Default to true for backward compatibility
18
- iosBackgroundModes: {
19
- useVoIP: false,
20
- useAudio: false,
21
- useProcessing: false,
22
- useLocation: false,
23
- useExternalAccessory: false,
24
- },
25
- iosConfig: {
26
- microphoneUsageDescription: MICROPHONE_USAGE,
27
- notificationUsageDescription: NOTIFICATION_USAGE,
28
- },
29
- ...(props || {}),
30
- };
31
- const { enablePhoneStateHandling, enableNotifications, enableBackgroundAudio, enableDeviceDetection, } = options;
32
- debugLog('📱 Configuring Recording Permissions Plugin...', options);
33
- // iOS Configuration
34
- config = (0, config_plugins_1.withInfoPlist)(config, (config) => {
35
- // Always set the microphone usage description from options first
36
- config.modResults['NSMicrophoneUsageDescription'] =
37
- options.iosConfig?.microphoneUsageDescription ||
38
- config.modResults['NSMicrophoneUsageDescription'] ||
39
- MICROPHONE_USAGE;
40
- if (enableNotifications) {
41
- config.modResults['NSUserNotificationsUsageDescription'] =
42
- options.iosConfig?.notificationUsageDescription ||
43
- config.modResults['NSUserNotificationsUsageDescription'] ||
44
- NOTIFICATION_USAGE;
45
- config.modResults['NSUserNotificationAlertStyle'] = 'alert';
46
- }
47
- const existingBackgroundModes = config.modResults.UIBackgroundModes || [];
48
- // If background audio is enabled with useAudio, add the audio background mode
49
- if (options.iosBackgroundModes?.useAudio === true &&
50
- enableBackgroundAudio === true &&
51
- !existingBackgroundModes.includes('audio')) {
52
- // Add 'audio' background mode - REQUIRED for background recording
53
- existingBackgroundModes.push('audio');
54
- debugLog('✅ Added audio background mode for iOS background recording');
55
- // Also ensure processing mode is recommended
56
- if (options.iosBackgroundModes?.useProcessing !== true) {
57
- console.warn(`${LOG_PREFIX} Warning: Background audio recording works best with both 'audio' and 'processing' background modes. Consider enabling 'useProcessing' in iosBackgroundModes.`);
58
- }
59
- }
60
- if (options.iosBackgroundModes?.useVoIP === true &&
61
- enablePhoneStateHandling === true) {
62
- if (!existingBackgroundModes.includes('voip')) {
63
- existingBackgroundModes.push('voip');
64
- }
65
- const existingCapabilities = (config.modResults
66
- .UIRequiredDeviceCapabilities || []);
67
- if (!existingCapabilities.includes('telephony')) {
68
- existingCapabilities.push('telephony');
69
- }
70
- config.modResults.UIRequiredDeviceCapabilities =
71
- existingCapabilities;
72
- }
73
- // Add additional background modes only if explicitly set to true
74
- if (options.iosBackgroundModes?.useProcessing === true) {
75
- if (!existingBackgroundModes.includes('processing')) {
76
- existingBackgroundModes.push('processing');
77
- }
78
- // Add processing info if enabled
79
- // Note: We keep the 'audiostream' namespace for native modules to maintain compatibility
80
- config.modResults.BGTaskSchedulerPermittedIdentifiers = [
81
- 'com.siteed.audiostream.processing',
82
- ];
83
- }
84
- if (options.iosBackgroundModes?.useLocation === true) {
85
- if (!existingBackgroundModes.includes('location')) {
86
- existingBackgroundModes.push('location');
87
- }
88
- }
89
- if (options.iosBackgroundModes?.useExternalAccessory === true) {
90
- if (!existingBackgroundModes.includes('external-accessory')) {
91
- existingBackgroundModes.push('external-accessory');
92
- }
93
- }
94
- // Configure background processing info if enabled
95
- if (options.iosConfig?.backgroundProcessingTitle) {
96
- config.modResults.BGProcessingTaskTitle =
97
- options.iosConfig.backgroundProcessingTitle;
98
- }
99
- // Configure audio session behavior
100
- if (options.iosConfig?.allowBackgroundAudioControls) {
101
- config.modResults.UIBackgroundModes = [
102
- ...existingBackgroundModes,
103
- 'remote-notification',
104
- ];
105
- config.modResults.MPNowPlayingInfoPropertyPlaybackRate = true;
106
- }
107
- config.modResults.UIBackgroundModes = existingBackgroundModes;
108
- return config;
109
- });
110
- // Android Configuration
111
- config = (0, config_plugins_1.withAndroidManifest)(config, (config) => {
112
- const basePermissions = ['android.permission.RECORD_AUDIO'];
113
- const optionalPermissions = [
114
- enableNotifications && 'android.permission.POST_NOTIFICATIONS',
115
- enablePhoneStateHandling && 'android.permission.READ_PHONE_STATE', // Only add if enabled
116
- enableBackgroundAudio && 'android.permission.FOREGROUND_SERVICE',
117
- enableBackgroundAudio &&
118
- 'android.permission.FOREGROUND_SERVICE_MICROPHONE',
119
- enableBackgroundAudio && 'android.permission.WAKE_LOCK', // Keep device awake during background recording
120
- // Device detection permissions (only if enabled)
121
- enableDeviceDetection && 'android.permission.BLUETOOTH',
122
- enableDeviceDetection && 'android.permission.BLUETOOTH_ADMIN',
123
- enableDeviceDetection && 'android.permission.BLUETOOTH_CONNECT',
124
- enableDeviceDetection && 'android.permission.USB_PERMISSION',
125
- ].filter(Boolean);
126
- const permissionsToAdd = [...basePermissions, ...optionalPermissions];
127
- debugLog('📋 Existing Android permissions:', config.modResults.manifest['uses-permission']?.map((p) => p.$?.['android:name']) || []);
128
- debugLog('➕ Adding Android permissions:', permissionsToAdd);
129
- // Add each permission only if it doesn't exist
130
- permissionsToAdd.forEach((permission) => {
131
- config_plugins_1.AndroidConfig.Permissions.addPermission(config.modResults, permission);
132
- });
133
- // Get the main application node
134
- const mainApplication = config.modResults.manifest.application?.[0];
135
- if (mainApplication) {
136
- debugLog('📱 Configuring Android application components...');
137
- // Add RecordingActionReceiver
138
- if (!mainApplication.receiver) {
139
- mainApplication.receiver = [];
140
- }
141
- const receiverConfig = {
142
- $: {
143
- 'android:name': '.RecordingActionReceiver',
144
- 'android:exported': 'false',
145
- },
146
- 'intent-filter': [
147
- {
148
- action: [
149
- { $: { 'android:name': 'PAUSE_RECORDING' } },
150
- { $: { 'android:name': 'RESUME_RECORDING' } },
151
- { $: { 'android:name': 'STOP_RECORDING' } },
152
- ],
153
- },
154
- ],
155
- };
156
- const receiverIndex = mainApplication.receiver.findIndex((receiver) => receiver.$?.['android:name'] === '.RecordingActionReceiver');
157
- if (receiverIndex >= 0) {
158
- mainApplication.receiver[receiverIndex] = receiverConfig;
159
- }
160
- else {
161
- mainApplication.receiver.push(receiverConfig);
162
- }
163
- debugLog('✅ RecordingActionReceiver configured');
164
- // Add AudioRecordingService
165
- if (!mainApplication.service) {
166
- mainApplication.service = [];
167
- }
168
- const serviceConfig = {
169
- $: {
170
- 'android:name': '.AudioRecordingService',
171
- 'android:enabled': 'true',
172
- 'android:exported': 'false',
173
- 'android:foregroundServiceType': 'microphone',
174
- },
175
- };
176
- const serviceIndex = mainApplication.service.findIndex((service) => service.$?.['android:name'] === '.AudioRecordingService');
177
- if (serviceIndex >= 0) {
178
- mainApplication.service[serviceIndex] = serviceConfig;
179
- }
180
- else {
181
- mainApplication.service.push(serviceConfig);
182
- }
183
- debugLog('✅ AudioRecordingService configured');
184
- }
185
- else {
186
- console.error(`${LOG_PREFIX} ❌ Main application node not found in Android Manifest`);
187
- }
188
- return config;
189
- });
190
- debugLog('✨ Recording Permissions Plugin configuration completed');
191
- return config;
192
- };
193
- // Export as default
194
- exports.default = withRecordingPermission;