@siteed/expo-audio-stream 1.11.2 → 1.11.4

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,82 +8,190 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
8
8
  ## [Unreleased]
9
9
 
10
10
 
11
+ ## [1.11.4] - 2025-01-28
12
+ ### Bug Fixes
13
+ * **AppRoot:** Fix styleOverrides property in AppRoot component ([e8c3015](https://github.com/deeeed/expo-audio-stream/commit/e8c30151425d11a6bc3dfd7d6654002efa849b08))
14
+ * **audio-stream:** correct WAV header handling in web audio recording ([9ba7de5](https://github.com/deeeed/expo-audio-stream/commit/9ba7de5b96ca4cc937dea261c80d3fda9c99e8f4))
15
+ * change skipWavHeader to true in HexDataViewer ([410b6f5](https://github.com/deeeed/expo-audio-stream/commit/410b6f540403a73bf4a19e8918d30c108d06aa18))
16
+ * deployment path for playground app ([68ecbfc](https://github.com/deeeed/expo-audio-stream/commit/68ecbfc22cd4600e30ad1c6f2145ab68e6f4bf96))
17
+ * expo plugin files not published ([b88c446](https://github.com/deeeed/expo-audio-stream/commit/b88c44667013a901fccfe6f89dcb640ae2aae47f))
18
+ * **expo-audio-stream:** include all build + sourcemaps files in the package ([db91bdf](https://github.com/deeeed/expo-audio-stream/commit/db91bdf280e099af5baa0f966de0d9532648f15c))
19
+ * **expo-audio-stream:** missing package files ([0901a1b](https://github.com/deeeed/expo-audio-stream/commit/0901a1bbbcce3111c9b5d61ade8caa48bcdd3613))
20
+ * **expo-audio-stream:** missing plugin files ([e56254a](https://github.com/deeeed/expo-audio-stream/commit/e56254a4ffa1c015df3d300831ba0b392958b6c8))
21
+ * **expo-audio-stream:** plugin deployment process and build system enhancements ([#56](https://github.com/deeeed/expo-audio-stream/issues/56)) ([63fbeb8](https://github.com/deeeed/expo-audio-stream/commit/63fbeb82f56130dedeafa633e916f2ce0f8f1a67))
22
+ * **expo-audio-stream:** prevent invalid WAV files when stopping recording too quickly ([#53](https://github.com/deeeed/expo-audio-stream/issues/53)) ([80f4898](https://github.com/deeeed/expo-audio-stream/commit/80f4898625cea52da8f3e34e425e61d7641353f7))
23
+ * handle paused state in stopRecording ([#68](https://github.com/deeeed/expo-audio-stream/issues/68)) ([15eac9b](https://github.com/deeeed/expo-audio-stream/commit/15eac9bfcc3203e4a5eb5f236286ed72aafde722))
24
+ * incorrect types ([33095fe](https://github.com/deeeed/expo-audio-stream/commit/33095feffdfc85ffa7b12d041851afb2267b16d4))
25
+ * invalid prefix url on github ([36f013f](https://github.com/deeeed/expo-audio-stream/commit/36f013f052a4ed23373a0f27c5f0a4788ed1eda2))
26
+ * invalid property, use fullAudioDurationMs instead of durationMs ([ca4ef0d](https://github.com/deeeed/expo-audio-stream/commit/ca4ef0d3bbfbc259511cf08852082eb0c5b5c883))
27
+ * ios potentially missing compressed file info ([88a628c](https://github.com/deeeed/expo-audio-stream/commit/88a628c35f2bfd626a2a5de1eb6950efd814619d))
28
+ * **ios:** improve audio resampling and duration tracking ([#69](https://github.com/deeeed/expo-audio-stream/issues/69)) ([51bef49](https://github.com/deeeed/expo-audio-stream/commit/51bef493b8e167852c64b8c66a9f8a14cd34f99c))
29
+ * padding on web recording tabbar ([569df46](https://github.com/deeeed/expo-audio-stream/commit/569df46ff9eb338d671b50716a390e5b6eb019c7))
30
+ * **plugin:** remove automatic VoIP and audio background modes for iOS ([#86](https://github.com/deeeed/expo-audio-stream/issues/86)) ([4265bf5](https://github.com/deeeed/expo-audio-stream/commit/4265bf5dc9355a865e7f3177342169939afaf0bb))
31
+ * potential null error ([b5ac069](https://github.com/deeeed/expo-audio-stream/commit/b5ac0695e9e587bb7f08cbfee53515c7c59b49af))
32
+ * reset audio recording state properly on iOS and Android ([#66](https://github.com/deeeed/expo-audio-stream/issues/66)) ([61e9c26](https://github.com/deeeed/expo-audio-stream/commit/61e9c261fb3a979be1894e537233d6e5a4fbdae4))
33
+ * resources not cleanup properly on app kill ([#80](https://github.com/deeeed/expo-audio-stream/issues/80)) ([7d522a5](https://github.com/deeeed/expo-audio-stream/commit/7d522a531e70065b99758aa3a4c669769fdbd110))
34
+ * total size doesnt reset on new recording android ([#64](https://github.com/deeeed/expo-audio-stream/issues/64)) ([f7da57b](https://github.com/deeeed/expo-audio-stream/commit/f7da57ba9d6f25870c130c54a049ba4cfad1c444))
35
+ * update notification to avoid triggering new alerts ([#71](https://github.com/deeeed/expo-audio-stream/issues/71)) ([32dcfc5](https://github.com/deeeed/expo-audio-stream/commit/32dcfc55daf3236babefc17016f329c177d466fd))
36
+ *
37
+
38
+ ### Features
39
+ * wip ([4acc111](https://github.com/deeeed/expo-audio-stream/commit/4acc1118e3589258185b0e25aefd1f961aacaf8b))
40
+ * wip ([d8766ce](https://github.com/deeeed/expo-audio-stream/commit/d8766ce7472fdfc463b7c689ee6f3b3c6cfec307))
41
+ * add audio samples ([3b47b93](https://github.com/deeeed/expo-audio-stream/commit/3b47b93b9a1ea259829fcf04aded12d98794b93b))
42
+ * add example audio for comparison accross platform ([fa4c4b8](https://github.com/deeeed/expo-audio-stream/commit/fa4c4b8677aa25f4d302c2313b571312d62f5fb3))
43
+ * add icons ([fede6cc](https://github.com/deeeed/expo-audio-stream/commit/fede6ccf17c3f01b2334cb51ddf6a6804f899867))
44
+ * add jfk assets ([f5af3a2](https://github.com/deeeed/expo-audio-stream/commit/f5af3a29665d1fd246019a80e1ebddda198ae347))
45
+ * add options to skip consolidating data on web for faster processing ([329fed8](https://github.com/deeeed/expo-audio-stream/commit/329fed8c322ed34157b344920636e407c4cd805b))
46
+ * add skia + experiment downsampling ([05f2aef](https://github.com/deeeed/expo-audio-stream/commit/05f2aeffc30a471163923f7d89fb4174961039d0))
47
+ * add support for pausing and resuming compressed recordings ([bc3f629](https://github.com/deeeed/expo-audio-stream/commit/bc3f6295d060396325e0f008ff00b3be9c8722cd))
48
+ * adjust deps ([0f88e55](https://github.com/deeeed/expo-audio-stream/commit/0f88e556fa564964903796162faae5a0a8c5ef0e))
49
+ * align audio computation for amplitude ([0e21552](https://github.com/deeeed/expo-audio-stream/commit/0e215522b64d7eaba40d3f25a0275d11e8c6f5b1))
50
+ * android live working ([f509928](https://github.com/deeeed/expo-audio-stream/commit/f5099282266852ccd526471dd8ad045560e851ac))
51
+ * **audio:** implement audio compression support ([ff4e060](https://github.com/deeeed/expo-audio-stream/commit/ff4e060fef1061804c1cc0126d4344d2d50daa9a))
52
+ * auto load model files and update dependencies ([#57](https://github.com/deeeed/expo-audio-stream/issues/57)) ([60a34c0](https://github.com/deeeed/expo-audio-stream/commit/60a34c07428fd2812bd05474b311cf5d3e9fdd0e))
53
+ * automate API doc export inside docusaurus ([8925422](https://github.com/deeeed/expo-audio-stream/commit/89254220642ce93e6eb5f578b054fefcee7f6ba8))
54
+ * begin renaming example to playground ([0a46b15](https://github.com/deeeed/expo-audio-stream/commit/0a46b156d8d8a878b1ee618469ec5e437a3e5280))
55
+ * build assets ([acef47c](https://github.com/deeeed/expo-audio-stream/commit/acef47c97108a582bfc54691da08b390df399ae0))
56
+ * bump version ([7a55064](https://github.com/deeeed/expo-audio-stream/commit/7a55064d11a55272157eb2c83f59970461ac856d))
57
+ * bump version to 0.1.19 ([2d9c4d5](https://github.com/deeeed/expo-audio-stream/commit/2d9c4d5b251fa299a381150e43c3f2022f5153ae))
58
+ * clean build ([2001ed4](https://github.com/deeeed/expo-audio-stream/commit/2001ed4d204dc4f574e4b69dbac1a8e229ac5b1f))
59
+ * clean prebuild ([98333d4](https://github.com/deeeed/expo-audio-stream/commit/98333d4275dfdfb8e3d27ff5d844798cba5a30bb))
60
+ * cleanup ([4b0f39a](https://github.com/deeeed/expo-audio-stream/commit/4b0f39afe4f54645c75174985d5026ac4d126306))
61
+ * cleanup ([f77b011](https://github.com/deeeed/expo-audio-stream/commit/f77b0114cf9bf8130c7b4bc11017680897b0d0f5))
62
+ * cleanup ([4cd0d80](https://github.com/deeeed/expo-audio-stream/commit/4cd0d8010005e6e8d307184f7bea0adca92361d3))
63
+ * cleanup ([1f17964](https://github.com/deeeed/expo-audio-stream/commit/1f17964cd6fc1e877e8ab987a09080c8d2e40e9f))
64
+ * cleanup ([0bd2259](https://github.com/deeeed/expo-audio-stream/commit/0bd225968a3dbbeaed77bb5e106ffd99aa8f5f67))
65
+ * cleanup ([ecc49ee](https://github.com/deeeed/expo-audio-stream/commit/ecc49ee4a2cd25904dbb7b998157338a8e590436))
66
+ * cleanup ([4d8238d](https://github.com/deeeed/expo-audio-stream/commit/4d8238dc311e831c15596b56c86fa16abf807840))
67
+ * cleanup ([24f9cab](https://github.com/deeeed/expo-audio-stream/commit/24f9cab92df4b48f62371c9e29b7d4b7613d80b7))
68
+ * cleanup ([b26135c](https://github.com/deeeed/expo-audio-stream/commit/b26135c01332a514ea5c83b1d752dfdbc08f5090))
69
+ * cleanup ([a4e33a5](https://github.com/deeeed/expo-audio-stream/commit/a4e33a536e3d1533cf0f78284f30c5be793243ec))
70
+ * cleanup ([714f198](https://github.com/deeeed/expo-audio-stream/commit/714f198506a9616d09d7617805f37a5e59ed1299))
71
+ * cleanup ([649682a](https://github.com/deeeed/expo-audio-stream/commit/649682a7b88730c47eb3cb24ea89f4c583bdc557))
72
+ * cleanup ([#83](https://github.com/deeeed/expo-audio-stream/issues/83)) ([c557bd7](https://github.com/deeeed/expo-audio-stream/commit/c557bd79e3b043bc89695a0351014eaca6857036))
73
+ * cleanup sonacloud issues ([7d6f5df](https://github.com/deeeed/expo-audio-stream/commit/7d6f5df2c8e75d0b0bf4ff89d83fd31dafd69201))
74
+ * cleanup sonarcloud issues ([633e787](https://github.com/deeeed/expo-audio-stream/commit/633e787c0800cdc62b782df76826b712a083c4e9))
75
+ * cleanup unwanted file ([2bb6f8d](https://github.com/deeeed/expo-audio-stream/commit/2bb6f8d521e18382d2fe414acb35995a890f02d4))
76
+ * correct start config ([5984e40](https://github.com/deeeed/expo-audio-stream/commit/5984e403835af567731c17853e918df2dfe763eb))
77
+ * deps ([50ee0cc](https://github.com/deeeed/expo-audio-stream/commit/50ee0cce6c1a0e964f6b5e6a0f4b37a68f08053b))
78
+ * **deps:** update expo packages and dependencies to latest patch versions ([#81](https://github.com/deeeed/expo-audio-stream/issues/81)) ([3ed0526](https://github.com/deeeed/expo-audio-stream/commit/3ed0526545623530a10757f1bbd7f877a2c31296))
79
+ * design update ([2c9f333](https://github.com/deeeed/expo-audio-stream/commit/2c9f333f29c6ae0002adab09c3d7d58a46ecd2a3))
80
+ * disable duplicate notification alerts for audio stream ([#82](https://github.com/deeeed/expo-audio-stream/issues/82)) ([12f9992](https://github.com/deeeed/expo-audio-stream/commit/12f999247cdd6b08753bcf1b481582a604826383))
81
+ * display audio analysis on stop for web ([bf70c6c](https://github.com/deeeed/expo-audio-stream/commit/bf70c6cf777878492f21a04948740f409086b0f4))
82
+ * display files menu on web ([5927675](https://github.com/deeeed/expo-audio-stream/commit/5927675bc8bc8bccc4cd12bccf0ea278549c3071))
83
+ * enable new architecture on minimal demo ([cc2565f](https://github.com/deeeed/expo-audio-stream/commit/cc2565f308e3f54078466fb021376c9866d00c92))
84
+ * eslint for minimal project ([2c3fbc0](https://github.com/deeeed/expo-audio-stream/commit/2c3fbc00ba06791789bfed4e9571d0971332fe06))
85
+ * **expo-audio-stream:** add comprehensive ios audio session configuration support ([#54](https://github.com/deeeed/expo-audio-stream/issues/54)) ([ba296ac](https://github.com/deeeed/expo-audio-stream/commit/ba296ac9be0d61e7a46cc64953e6f2c66881fdfd))
86
+ * **expo-audio-stream:** opt in debug log for plugin config ([03a0a71](https://github.com/deeeed/expo-audio-stream/commit/03a0a7168bb4f77638de51c55a1ad19c713b52dc))
87
+ * **expo-audio-stream:** publishing setup ([e969cfb](https://github.com/deeeed/expo-audio-stream/commit/e969cfbb4b844e0fa34f77beb045ef2efb2f7b12))
88
+ * **expo-audio-ui:** enhance Waveform component and add RecordButton ([#59](https://github.com/deeeed/expo-audio-stream/issues/59)) ([7a78ed9](https://github.com/deeeed/expo-audio-stream/commit/7a78ed9530554d7346a726cf0ce7d534b0f3ccf2))
89
+ * finalize compression info api ([9ef0bd6](https://github.com/deeeed/expo-audio-stream/commit/9ef0bd62270133c8f89a678ec466f99896602583))
90
+ * fix native provider for transcription ([5a26d64](https://github.com/deeeed/expo-audio-stream/commit/5a26d64e1ceed5f50494cae4005af70abb8c495f))
91
+ * follow audio tracking ([df5afcd](https://github.com/deeeed/expo-audio-stream/commit/df5afcd4277d5a79ab56cf4ba7534f21fc9e1cf3))
92
+ * force pause audio at end of drag ([a06c84e](https://github.com/deeeed/expo-audio-stream/commit/a06c84e5ab91259575e36849108cee16f69bee2e))
93
+ * full fix ([2be8940](https://github.com/deeeed/expo-audio-stream/commit/2be894060e3d2fcfee75f5f61b9fb8e475083e25))
94
+ * handle empty state for audio files ([2ce508c](https://github.com/deeeed/expo-audio-stream/commit/2ce508c001cc16cea38bbec5fbe6cc386ee97e2b))
95
+ * implement android feature extraction ([2b221d5](https://github.com/deeeed/expo-audio-stream/commit/2b221d5d92348597413a530a32281ba1173d5a51))
96
+ * Improve file handling in the playground app ([a405d55](https://github.com/deeeed/expo-audio-stream/commit/a405d557c0a289a8c15dc111d72137c93143a89a))
97
+ * ios bitrate verification to prevent invalid values ([035a180](https://github.com/deeeed/expo-audio-stream/commit/035a1800833264edcc59724aaa8a2e12d5c78dc2))
98
+ * ios features extraction ([d297076](https://github.com/deeeed/expo-audio-stream/commit/d297076c50018aff3e8dac14886df018444c0648))
99
+ * ios working ([771ee57](https://github.com/deeeed/expo-audio-stream/commit/771ee579f79ee4df4433cf9a1e984a2e0d89398c))
100
+ * live working on web ([99dcd9c](https://github.com/deeeed/expo-audio-stream/commit/99dcd9cafebc0d5e8c7eebeaee1662ff68ef492d))
101
+ * lockfile update ([a7e1cbb](https://github.com/deeeed/expo-audio-stream/commit/a7e1cbb5ea5055be3c5e52789e784f79f8f69fa2))
102
+ * manage files on web ([c8112b6](https://github.com/deeeed/expo-audio-stream/commit/c8112b605a9dd800c9afb90689896811c07b7ffb))
103
+ * migrate to yarn berry ([eadbdbe](https://github.com/deeeed/expo-audio-stream/commit/eadbdbeac3a21014d93c96cf1acd154f77db5a42))
104
+ * minimal clean ([2f221c2](https://github.com/deeeed/expo-audio-stream/commit/2f221c2140723da69ff72c263dbd28df86909183))
105
+ * minimal working version ([ea5ee59](https://github.com/deeeed/expo-audio-stream/commit/ea5ee59bc122574cd42affcc2d52aa664c4e5fb3))
106
+ * only opus on wbe ([e0df5b8](https://github.com/deeeed/expo-audio-stream/commit/e0df5b8d862b915e073dca6c430225c69f829953))
107
+ * **playground:** enhance app configuration and build setup for production deployment ([#58](https://github.com/deeeed/expo-audio-stream/issues/58)) ([929d443](https://github.com/deeeed/expo-audio-stream/commit/929d443145378b1430d215db5c00b13758420e2b))
108
+ * **playground:** enhance Whisper integration with improved UI and iOS support ([#52](https://github.com/deeeed/expo-audio-stream/issues/52)) ([0ca2609](https://github.com/deeeed/expo-audio-stream/commit/0ca2609c3e84d03899b5d4578c453c48ff036b39))
109
+ * **playground:** improved reanimated hack ([ba1d039](https://github.com/deeeed/expo-audio-stream/commit/ba1d0395e7e785824fb1e82e018195a2e6429e55))
110
+ * **playground:** integrate whisper.rn native speech recognition ([#51](https://github.com/deeeed/expo-audio-stream/issues/51)) ([63f4e8c](https://github.com/deeeed/expo-audio-stream/commit/63f4e8ca227f72e83d5c8a9209d1b25fe820c081)), closes [#13](https://github.com/deeeed/expo-audio-stream/issues/13)
111
+ * **playground:** Update app configuration for new architecture settings ([c537267](https://github.com/deeeed/expo-audio-stream/commit/c5372674d67d2be7d6054df8ad61d978c7ad0d73))
112
+ * **playground:** update expo and enable new architecture ([c118c52](https://github.com/deeeed/expo-audio-stream/commit/c118c524c131978d6741f72444d5cefa48209481))
113
+ * **playground:** update expo dependencies and prepare for deployment ([#61](https://github.com/deeeed/expo-audio-stream/issues/61)) ([f6f5161](https://github.com/deeeed/expo-audio-stream/commit/f6f5161c2459739a5b605bb684422d94520ccb15))
114
+ * redux setup ([c012ada](https://github.com/deeeed/expo-audio-stream/commit/c012adafda02e1d556adcdc960be85b46aebfa37))
115
+ * reorganize audio files and differentiate active speech color ([def92c8](https://github.com/deeeed/expo-audio-stream/commit/def92c88feb9e9b2474f8f1df87553e7c72b1f55))
116
+ * save ([d611a80](https://github.com/deeeed/expo-audio-stream/commit/d611a80654e369fa64e141c38292b213a3374572))
117
+ * save state ([97c20fd](https://github.com/deeeed/expo-audio-stream/commit/97c20fd0474cb2eab2db655807b4d9b5ba6d817e))
118
+ * save state ([1a30cfe](https://github.com/deeeed/expo-audio-stream/commit/1a30cfe1350e8704320af2c2526570173636a5bd))
119
+ * save state ([072765b](https://github.com/deeeed/expo-audio-stream/commit/072765b5bf6151742a80db1223378c6dffcde67f))
120
+ * saving state ([fea84fa](https://github.com/deeeed/expo-audio-stream/commit/fea84fa89f2a46e4efb4ff70aa29a9d3527dc159))
121
+ * setup rncpp package ([09c6ecd](https://github.com/deeeed/expo-audio-stream/commit/09c6ecd541a3db64892288bc6425711de5ab185f))
122
+ * setup script for publishing ([6d94aec](https://github.com/deeeed/expo-audio-stream/commit/6d94aecfe15974d612e367335e4cafd4a4114e81))
123
+ * simplify gesture handler ([9c86f2f](https://github.com/deeeed/expo-audio-stream/commit/9c86f2f44f9b9b5605a39e70ddaff71267d779d9))
124
+ * simplify updateActivePoints params ([a14674f](https://github.com/deeeed/expo-audio-stream/commit/a14674fc93e0f97d6b43051a9b61ecac8c4595f3))
125
+ * smooth scrolling ([5cc1b15](https://github.com/deeeed/expo-audio-stream/commit/5cc1b15fa103ca3d36574883cd32c1a67a3e74c5))
126
+ * styling ([7e76879](https://github.com/deeeed/expo-audio-stream/commit/7e76879ef447b0b65501311dd34b98d14df35020))
127
+ * ui improvements ([#7](https://github.com/deeeed/expo-audio-stream/issues/7)) ([ea17266](https://github.com/deeeed/expo-audio-stream/commit/ea17266b4285763112bec8a020d30455f0c64762))
128
+ * Update audio-recording component styles and UI ([#8](https://github.com/deeeed/expo-audio-stream/issues/8)) ([7caea1f](https://github.com/deeeed/expo-audio-stream/commit/7caea1fc0f8657165aad24375402d15dea12451a))
129
+ * update deisgn system ([e01732e](https://github.com/deeeed/expo-audio-stream/commit/e01732e6dcf3e95874d902c309846ebd35b901fc))
130
+ * update deps and audio hex visualization ([#11](https://github.com/deeeed/expo-audio-stream/issues/11)) ([f664fe9](https://github.com/deeeed/expo-audio-stream/commit/f664fe92d99ee76f79448b5d1f4a935a5b4108e3))
131
+ * update docs ([#10](https://github.com/deeeed/expo-audio-stream/issues/10)) ([1ad30a4](https://github.com/deeeed/expo-audio-stream/commit/1ad30a4b9721501d88a7f0b2f77db947ba317f31))
132
+ * updated config ([7ea18cb](https://github.com/deeeed/expo-audio-stream/commit/7ea18cb19a892e31cc48220b2eda8de070df49ba))
133
+ * updated doc ([9c5f4dd](https://github.com/deeeed/expo-audio-stream/commit/9c5f4ddfb24251adbcdea397a8b1a0dd30f00e14))
134
+ * upgrade expo and rn ([98aa423](https://github.com/deeeed/expo-audio-stream/commit/98aa4232021728ad8bce76054d2421e6df024803))
135
+ * use flatlist instead of scrollview for logs ([d73b932](https://github.com/deeeed/expo-audio-stream/commit/d73b93290621a09de8fb7cc5865a9c2f8068f9df))
136
+ * use indexeddb instead of session storage ([a71d630](https://github.com/deeeed/expo-audio-stream/commit/a71d630a18362a8f3c25599bdb3bd0989582f8dd))
137
+ * web implementation of compressed stream ([363ad82](https://github.com/deeeed/expo-audio-stream/commit/363ad8289b419f86f4322addc4e2b33db8d85004))
138
+ * **web-audio:** optimize memory usage and streaming performance for web audio recording ([#75](https://github.com/deeeed/expo-audio-stream/issues/75)) ([7b93e12](https://github.com/deeeed/expo-audio-stream/commit/7b93e12aae4bc0599b06b48ca34a60f65587fc75))
139
+ * whisperweb integration ([#12](https://github.com/deeeed/expo-audio-stream/issues/12)) ([1dc5bf0](https://github.com/deeeed/expo-audio-stream/commit/1dc5bf053c56a78d5d4d581d96ab78d167d36b58)), closes [#34](https://github.com/deeeed/expo-audio-stream/issues/34)
140
+ * wip ([109e2f5](https://github.com/deeeed/expo-audio-stream/commit/109e2f59d81739e05c7ae2d0246c9808aa12b207))
141
+ * wip ([a3789d7](https://github.com/deeeed/expo-audio-stream/commit/a3789d7c82cae6d2dfea5dceafe27829d1a54c96))
142
+ * wip ([aef25e2](https://github.com/deeeed/expo-audio-stream/commit/aef25e279363eaefb484467e97e7e119b4d4ae7d))
143
+ * wip ([9137e75](https://github.com/deeeed/expo-audio-stream/commit/9137e7589c97d9bdf283ae227091086f4591e4ed))
144
+ * wip ([158a447](https://github.com/deeeed/expo-audio-stream/commit/158a447bc68363ff2ef61d0415c19ccc01627ffc))
145
+ * wip ([0f98b57](https://github.com/deeeed/expo-audio-stream/commit/0f98b576cd4ab9f4b0d9febb08ab047c20f098dc))
146
+ * wip ([ebb3b78](https://github.com/deeeed/expo-audio-stream/commit/ebb3b788250c746ce50d56a97810b7fc57224b26))
147
+ * wip ([84c4a6b](https://github.com/deeeed/expo-audio-stream/commit/84c4a6b7ed50d9df4823e8f10668f69b52e97bfd))
148
+ * wip ([1f23623](https://github.com/deeeed/expo-audio-stream/commit/1f236230d1cba8448f1a41fe86809db005f21086))
149
+ * wip ([5d9f52a](https://github.com/deeeed/expo-audio-stream/commit/5d9f52ad8aab54839342c021b23f36508996d9c3))
150
+ * wip ([c49e81d](https://github.com/deeeed/expo-audio-stream/commit/c49e81da8a704cdf8046ce48944c185b3e3bbd7b))
151
+ * wip ([f69caf4](https://github.com/deeeed/expo-audio-stream/commit/f69caf4d39d30b44ad3bf7a9f7dadf3e206d5a7a))
152
+ * wip ([79364ed](https://github.com/deeeed/expo-audio-stream/commit/79364edbbde84c22482d2118cf71fa04c9a11fce))
153
+ * wip ([fc7b156](https://github.com/deeeed/expo-audio-stream/commit/fc7b1569fd2b788460b6ef4213b429cf6e333a41))
154
+ * wip ([1260fce](https://github.com/deeeed/expo-audio-stream/commit/1260fceb12435f9113fe9048223200fc3f25775d))
155
+ * wip ([53c13b0](https://github.com/deeeed/expo-audio-stream/commit/53c13b04b8bce0cec36009a2312086f1c5a12624))
156
+ * wip ([940ba32](https://github.com/deeeed/expo-audio-stream/commit/940ba32b37357b79890eeb57ca7fd8c041b2a23a))
157
+ * wip ([8e731a8](https://github.com/deeeed/expo-audio-stream/commit/8e731a8b4a8e2ae255d347c6132a024b6cc1eff4))
158
+ * wip ([72530f9](https://github.com/deeeed/expo-audio-stream/commit/72530f908d2e90584a8fcc1adf710686f72d66a5))
159
+ * wip ([f09be94](https://github.com/deeeed/expo-audio-stream/commit/f09be94b31191f3d157c54c3c8ecd0e8764cf653))
160
+ * wip ([466282a](https://github.com/deeeed/expo-audio-stream/commit/466282acc53030af03e02e3e3f107c8d4121badc))
161
+ * wip ([8173fec](https://github.com/deeeed/expo-audio-stream/commit/8173fec1df32338d12d9a32870c69b6dc6296497))
162
+ * wip ([2daac9f](https://github.com/deeeed/expo-audio-stream/commit/2daac9fb11426ff3bec8a146871ea91b2ca422b2))
163
+ * wip and ios improvements ([80463f1](https://github.com/deeeed/expo-audio-stream/commit/80463f1694d5a9d4d963d51587e8214362b9e57c))
164
+ * working downsampling ([e62e06e](https://github.com/deeeed/expo-audio-stream/commit/e62e06e38b51057adbc32ce371a4d895e51d4530))
165
+ * working ios+android+web visuals ([5906ba5](https://github.com/deeeed/expo-audio-stream/commit/5906ba5460149d931bf0acdd0e54051497c79975))
166
+ * working minimal example ([f1cae73](https://github.com/deeeed/expo-audio-stream/commit/f1cae73adc8a6335801996889d04acd4a8b96c18))
167
+ *
168
+
169
+ ### Reverts
170
+ * Revert "Implement refresh control and add clipboard dependency and babel asse…" (#6) ([5f82f64](https://github.com/deeeed/expo-audio-stream/commit/5f82f644fdc7735988d1d46520120945ff8e6174)), closes [#6](https://github.com/deeeed/expo-audio-stream/issues/6)
171
+ ## [1.11.3] - 2025-01-25
172
+ - disable duplicate notification alerts for audio stream (#82) ([12f9992](https://github.com/deeeed/expo-audio-stream/commit/12f999247cdd6b08753bcf1b481582a604826383))
173
+ - feat(deps): update expo packages and dependencies to latest patch versions (#81) ([3ed0526](https://github.com/deeeed/expo-audio-stream/commit/3ed0526545623530a10757f1bbd7f877a2c31296))
11
174
  ## [1.11.2] - 2025-01-22
12
175
  - resources not cleanup properly on app kill (#80) ([7d522a5](https://github.com/deeeed/expo-audio-stream/commit/7d522a531e70065b99758aa3a4c669769fdbd110))
13
-
14
176
  ## [1.11.1] - 2025-01-22
15
177
  - chore: force deployment of 1.11.1
16
-
17
-
18
178
  ## [1.11.0] - 2025-01-22
19
179
  - feat(audio): add intelligent call interruption handling & compression improvements ([f8f6187](https://github.com/deeeed/expo-audio-stream/pull/78))
20
-
21
-
22
-
23
180
  ## [1.10.0] - 2025-01-14
24
181
  - add support for pausing and resuming compressed recordings ([bc3f629](https://github.com/deeeed/expo-audio-stream/commit/bc3f6295d060396325e0f008ff00b3be9c8722cd))
25
182
  - optimize notification channel settings ([daa075e](https://github.com/deeeed/expo-audio-stream/commit/daa075e668f8faf0b8d2849e18c37384bdd293b8))
26
-
27
-
28
-
29
-
30
183
  ## [1.9.2] - 2025-01-12
31
184
  - ios bitrate verification to prevent invalid values ([035a180](https://github.com/deeeed/expo-audio-stream/commit/035a1800833264edcc59724aaa8a2e12d5c78dc2))
32
-
33
-
34
-
35
-
36
-
37
185
  ## [1.9.1] - 2025-01-12
38
186
  - ios potentially missing compressed file info ([88a628c](https://github.com/deeeed/expo-audio-stream/commit/88a628c35f2bfd626a2a5de1eb6950efd814619d))
39
-
40
-
41
-
42
-
43
-
44
-
45
187
  ## [1.9.0] - 2025-01-11
46
188
  - feat(web-audio): optimize memory usage and streaming performance for web audio recording (#75) ([7b93e12](https://github.com/deeeed/expo-audio-stream/commit/7b93e12aae4bc0599b06b48ca34a60f65587fc75))
47
-
48
-
49
-
50
-
51
-
52
-
53
-
54
189
  ## [1.8.0] - 2025-01-10
55
190
  - feat(audio): implement audio compression support ([ff4e060](https://github.com/deeeed/expo-audio-stream/commit/ff4e060fef1061804c1cc0126d4344d2d50daa9a))
56
-
57
-
58
-
59
-
60
-
61
-
62
-
63
-
64
191
  ## [1.7.2] - 2025-01-07
65
192
  - fix(audio-stream): correct WAV header handling in web audio recording ([9ba7de5](https://github.com/deeeed/expo-audio-stream/commit/9ba7de5b96ca4cc937dea261c80d3fda9c99e8f4))
66
-
67
-
68
-
69
-
70
-
71
-
72
-
73
-
74
-
75
193
  ## [1.7.1] - 2025-01-07
76
194
  - update notification to avoid triggering new alerts (#71) ([32dcfc5](https://github.com/deeeed/expo-audio-stream/commit/32dcfc55daf3236babefc17016f329c177d466fd))
77
-
78
-
79
-
80
-
81
-
82
-
83
-
84
-
85
-
86
-
87
195
  ## [1.7.0] - 2025-01-05
88
196
  - feat(playground): enhance app configuration and build setup for production deployment (#58) ([929d443](https://github.com/deeeed/expo-audio-stream/commit/929d443145378b1430d215db5c00b13758420e2b))
89
197
  - chore(expo-audio-stream): release @siteed/expo-audio-stream@1.6.1 ([084e8ad](https://github.com/deeeed/expo-audio-stream/commit/084e8adb91da7874c9e608b55d9c7b2ffd7a8327))
@@ -91,17 +199,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
91
199
  - handle paused state in stopRecording (#68) ([15eac9b](https://github.com/deeeed/expo-audio-stream/commit/15eac9bfcc3203e4a5eb5f236286ed72aafde722))
92
200
  - reset audio recording state properly on iOS and Android (#66) ([61e9c26](https://github.com/deeeed/expo-audio-stream/commit/61e9c261fb3a979be1894e537233d6e5a4fbdae4))
93
201
  - total size doesnt reset on new recording android (#64) ([f7da57b](https://github.com/deeeed/expo-audio-stream/commit/f7da57ba9d6f25870c130c54a049ba4cfad1c444))
94
-
95
-
96
-
97
-
98
-
99
-
100
-
101
-
102
-
103
-
104
-
105
202
  ## [1.6.1] - 2024-12-11
106
203
  - chore(expo-audio-stream): remove git commit step from publish script ([4a772ce](https://github.com/deeeed/expo-audio-stream/commit/4a772ce93bb7405d9b8e981f46bdf8941a71ecfe))
107
204
  - chore: more publishing automation ([3693021](https://github.com/deeeed/expo-audio-stream/commit/369302107f9dca9dddd8ae68e6214481a39976ac))
@@ -112,63 +209,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
112
209
  - fix(expo-audio-stream): include all build + sourcemaps files in the package
113
210
  - fix(expo-audio-stream): missing plugin files ([e56254a](https://github.com/deeeed/expo-audio-stream/commit/e56254a4ffa1c015df3d300831ba0b392958b6c8))
114
211
  - fix(expo-audio-stream): plugin deployment process and build system enhancements (#56) ([63fbeb8](https://github.com/deeeed/expo-audio-stream/commit/63fbeb82f56130dedeafa633e916f2ce0f8f1a67))
115
-
116
-
117
-
118
-
119
-
120
-
121
-
122
-
123
-
124
-
125
-
126
-
127
212
  ## [1.5.0] - 2024-12-10
128
213
  - UNPUBLISHED because of a bug in the build system
129
-
130
-
131
-
132
-
133
-
134
-
135
-
136
-
137
-
138
-
139
-
140
-
141
-
142
214
  ## [1.4.0] - 2024-12-05
143
215
  - chore: remove unusded dependencies ([ad81dd5](https://github.com/deeeed/expo-audio-stream/commit/ad81dd560c93dd1d04995a323a4ae72d4de20f3e))
144
-
145
-
146
-
147
-
148
-
149
-
150
-
151
-
152
-
153
-
154
-
155
-
156
-
157
216
  ## [1.3.1] - 2024-12-05
158
217
  - feat(web): implement throttling and optimize event processing (#49) ([da28765](https://github.com/deeeed/expo-audio-stream/commit/da2876524c2c9d6e0a980fde40a0197b929d8a7f))
159
-
160
-
161
-
162
-
163
-
164
-
165
-
166
-
167
-
168
-
169
-
170
-
171
-
172
218
  ## [1.3.0] - 2024-11-28
173
219
  ### Added
174
220
  - refactor(permissions): standardize permission status response structure across platforms (#44) ([7c9c800](https://github.com/deeeed/expo-audio-stream/commit/7c9c800d83b7cea3516643371484d5e1f3b99e4c))
@@ -176,36 +222,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
176
222
  - feat: update expo-modules-core ([54ed5c5](https://github.com/deeeed/expo-audio-stream/commit/54ed5c59affa46fdf8cdc2e8048766247a4ed16c))
177
223
  - feat: latest expo fixes ([9cc5ac3](https://github.com/deeeed/expo-audio-stream/commit/9cc5ac39751999e5b33e11c16355557143d68d10))
178
224
  - feat: latest expo sdk ([258ef6c](https://github.com/deeeed/expo-audio-stream/commit/258ef6cf68e70c7855f696a01204f79b0793fdc0))
179
-
180
-
181
-
182
-
183
-
184
-
185
-
186
-
187
-
188
-
189
-
190
-
191
-
192
225
  ## [1.2.5] - 2024-11-12
193
226
  ### Added
194
227
  - docs(license): add MIT license to all packages (6 files changed)
195
228
  - fix(expo-audio-stream): return actual recording settings from startRecording on iOS #37
196
-
197
-
198
-
199
-
200
-
201
-
202
-
203
-
204
-
205
-
206
-
207
-
208
-
209
229
  ## [1.2.4] - 2024-11-05
210
230
  ### Changed
211
231
  - Android minimum audio interval set to 10ms.
@@ -213,19 +233,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
213
233
 
214
234
  ### Fixed
215
235
  - Remove frequently firing log statements on web.
216
-
217
-
218
-
219
-
220
-
221
-
222
-
223
-
224
-
225
-
226
-
227
-
228
-
229
236
  ## [1.2.0] - 2024-10-24
230
237
  ### Added
231
238
  - Feature: Keep device awake during recording with `keepAwake` option
@@ -233,36 +240,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
233
240
  - Android: Rich notification support with live waveform visualization
234
241
  - Android: Configurable notification actions, colors, and priorities
235
242
  - iOS: Integration with media player
236
-
237
-
238
-
239
-
240
-
241
-
242
-
243
-
244
-
245
-
246
-
247
-
248
-
249
243
  ## [1.1.17] - 2024-10-21
250
244
  ### Added
251
245
  - Support bluetooth headset on ios
252
246
  - Fixes: android not reading custom interval audio update
253
-
254
-
255
-
256
-
257
-
258
-
259
-
260
-
261
-
262
-
263
-
264
-
265
-
266
247
  ## [1.0.0] - 2024-04-01
267
248
  ### Added
268
249
  - Initial release of @siteed/expo-audio-stream.
@@ -273,7 +254,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
273
254
  - Feature: Audio features extraction during recording.
274
255
  - Feature: Consistent WAV PCM recording format across all platforms.
275
256
 
276
- [unreleased]: https://github.com/deeeed/expo-audio-stream/compare/@siteed/expo-audio-stream@1.11.2...HEAD
257
+ [unreleased]: https://github.com/deeeed/expo-audio-stream/compare/@siteed/expo-audio-stream@1.11.4...HEAD
258
+ [1.11.4]: https://github.com/deeeed/expo-audio-stream/compare/@siteed/expo-audio-stream@1.11.3...@siteed/expo-audio-stream@1.11.4
259
+ [1.11.3]: https://github.com/deeeed/expo-audio-stream/compare/@siteed/expo-audio-stream@1.11.2...@siteed/expo-audio-stream@1.11.3
277
260
  [1.11.2]: https://github.com/deeeed/expo-audio-stream/compare/@siteed/expo-audio-stream@1.11.1...@siteed/expo-audio-stream@1.11.2
278
261
  [1.11.1]: https://github.com/deeeed/expo-audio-stream/compare/@siteed/expo-audio-stream@1.11.0...@siteed/expo-audio-stream@1.11.1
279
262
  [1.11.0]: https://github.com/deeeed/expo-audio-stream/compare/@siteed/expo-audio-stream@1.10.0...@siteed/expo-audio-stream@1.11.0
@@ -115,10 +115,12 @@ class AudioNotificationManager private constructor(context: Context) {
115
115
  PendingIntent.FLAG_IMMUTABLE
116
116
  )
117
117
 
118
+ // Configure notification builder with settings optimized for recording service
119
+ // and wearable device compatibility
118
120
  notificationBuilder = NotificationCompat.Builder(context, recordingConfig.notification.channelId)
119
121
  .setSmallIcon(iconResId)
120
122
  .setContentIntent(pendingIntent)
121
- .setOngoing(true)
123
+ .setOngoing(true) // Notification cannot be dismissed by user
122
124
  .setPriority(NotificationCompat.PRIORITY_HIGH)
123
125
  .setCategory(NotificationCompat.CATEGORY_SERVICE)
124
126
  .setVisibility(NotificationCompat.VISIBILITY_PUBLIC)
@@ -126,6 +128,11 @@ class AudioNotificationManager private constructor(context: Context) {
126
128
  .setCustomContentView(remoteViews)
127
129
  .setCustomBigContentView(remoteViews)
128
130
  .setStyle(NotificationCompat.DecoratedCustomViewStyle())
131
+ // Prevent repeated alerts and vibrations
132
+ .setOnlyAlertOnce(true) // Only alert on first notification
133
+ .setVibrate(null) // Disable vibration
134
+ .setDefaults(0) // Clear all default notification behaviors
135
+ .setLocalOnly(true) // Prevent notification from appearing on wearable devices
129
136
 
130
137
  addNotificationActions(context)
131
138
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@siteed/expo-audio-stream",
3
- "version": "1.11.2",
3
+ "version": "1.11.4",
4
4
  "description": "stream audio crossplatform",
5
5
  "license": "MIT",
6
6
  "main": "build/index.js",
@@ -66,12 +66,12 @@
66
66
  "release": "./publish.sh"
67
67
  },
68
68
  "devDependencies": {
69
- "@expo/config-plugins": "~8.0.0",
69
+ "@expo/config-plugins": "~9.0.0",
70
70
  "@siteed/publisher": "^0.4.15",
71
71
  "@size-limit/preset-big-lib": "^11.1.4",
72
72
  "@types/jest": "^29.5.12",
73
73
  "@types/node": "^20.12.7",
74
- "@types/react": "~18.2.79",
74
+ "@types/react": "~18.3.12",
75
75
  "@typescript-eslint/eslint-plugin": "^7.7.0",
76
76
  "@typescript-eslint/parser": "^7.7.0",
77
77
  "bundle-size": "^1.1.5",
@@ -82,11 +82,11 @@
82
82
  "eslint-plugin-prettier": "^5.1.3",
83
83
  "eslint-plugin-promise": "^6.1.1",
84
84
  "eslint-plugin-react": "^7.34.1",
85
- "expo": "~52.0.0",
85
+ "expo": "^52.0.27",
86
86
  "expo-module-scripts": "^4.0.2",
87
87
  "jest": "^29.7.0",
88
88
  "prettier": "^3.2.5",
89
- "react-native": "0.76.0",
89
+ "react-native": "0.76.6",
90
90
  "rimraf": "^6.0.1",
91
91
  "size-limit": "^11.1.4",
92
92
  "ts-node": "^10.9.2",
@@ -105,6 +105,6 @@
105
105
  },
106
106
  "dependencies": {
107
107
  "@siteed/design-system": "^0.35.1",
108
- "expo-modules-core": "^2.1.1"
108
+ "expo-modules-core": "~2.1.4"
109
109
  }
110
110
  }
@@ -3,6 +3,18 @@ interface AudioStreamPluginOptions {
3
3
  enablePhoneStateHandling?: boolean;
4
4
  enableNotifications?: boolean;
5
5
  enableBackgroundAudio?: boolean;
6
+ iosBackgroundModes?: {
7
+ useVoIP?: boolean;
8
+ useAudio?: boolean;
9
+ useProcessing?: boolean;
10
+ useLocation?: boolean;
11
+ useExternalAccessory?: boolean;
12
+ };
13
+ iosConfig?: {
14
+ allowBackgroundAudioControls?: boolean;
15
+ backgroundProcessingTitle?: string;
16
+ keepAliveInBackground?: boolean;
17
+ };
6
18
  }
7
19
  declare const withRecordingPermission: ConfigPlugin<AudioStreamPluginOptions>;
8
20
  export default withRecordingPermission;
@@ -10,11 +10,22 @@ function debugLog(message, ...args) {
10
10
  }
11
11
  }
12
12
  const withRecordingPermission = (config, props) => {
13
- // Default options if pluginOptions is undefined (void)
14
13
  const options = {
15
14
  enablePhoneStateHandling: true,
16
15
  enableNotifications: true,
17
16
  enableBackgroundAudio: true,
17
+ iosBackgroundModes: {
18
+ useVoIP: false,
19
+ useAudio: false,
20
+ useProcessing: false,
21
+ useLocation: false,
22
+ useExternalAccessory: false,
23
+ },
24
+ iosConfig: {
25
+ allowBackgroundAudioControls: false,
26
+ backgroundProcessingTitle: 'Audio Recording',
27
+ keepAliveInBackground: true,
28
+ },
18
29
  ...(props || {}),
19
30
  };
20
31
  const { enablePhoneStateHandling, enableNotifications, enableBackgroundAudio, } = options;
@@ -31,11 +42,13 @@ const withRecordingPermission = (config, props) => {
31
42
  config.modResults['NSUserNotificationAlertStyle'] = 'alert';
32
43
  }
33
44
  const existingBackgroundModes = config.modResults.UIBackgroundModes || [];
34
- if (enableBackgroundAudio &&
45
+ // Only add background modes if explicitly enabled
46
+ if (options.iosBackgroundModes?.useAudio &&
47
+ enableBackgroundAudio &&
35
48
  !existingBackgroundModes.includes('audio')) {
36
49
  existingBackgroundModes.push('audio');
37
50
  }
38
- if (enablePhoneStateHandling) {
51
+ if (options.iosBackgroundModes?.useVoIP && enablePhoneStateHandling) {
39
52
  if (!existingBackgroundModes.includes('voip')) {
40
53
  existingBackgroundModes.push('voip');
41
54
  }
@@ -47,6 +60,39 @@ const withRecordingPermission = (config, props) => {
47
60
  config.modResults.UIRequiredDeviceCapabilities =
48
61
  existingCapabilities;
49
62
  }
63
+ // Add additional background modes if enabled
64
+ if (options.iosBackgroundModes?.useProcessing) {
65
+ if (!existingBackgroundModes.includes('processing')) {
66
+ existingBackgroundModes.push('processing');
67
+ }
68
+ // Add processing info if enabled
69
+ config.modResults.BGTaskSchedulerPermittedIdentifiers = [
70
+ 'com.siteed.audiostream.processing'
71
+ ];
72
+ }
73
+ if (options.iosBackgroundModes?.useLocation) {
74
+ if (!existingBackgroundModes.includes('location')) {
75
+ existingBackgroundModes.push('location');
76
+ }
77
+ }
78
+ if (options.iosBackgroundModes?.useExternalAccessory) {
79
+ if (!existingBackgroundModes.includes('external-accessory')) {
80
+ existingBackgroundModes.push('external-accessory');
81
+ }
82
+ }
83
+ // Configure background processing info if enabled
84
+ if (options.iosConfig?.backgroundProcessingTitle) {
85
+ config.modResults.BGProcessingTaskTitle =
86
+ options.iosConfig.backgroundProcessingTitle;
87
+ }
88
+ // Configure audio session behavior
89
+ if (options.iosConfig?.allowBackgroundAudioControls) {
90
+ config.modResults.UIBackgroundModes = [
91
+ ...existingBackgroundModes,
92
+ 'remote-notification'
93
+ ];
94
+ config.modResults.MPNowPlayingInfoPropertyPlaybackRate = true;
95
+ }
50
96
  config.modResults.UIBackgroundModes = existingBackgroundModes;
51
97
  return config;
52
98
  });
@@ -20,17 +20,40 @@ interface AudioStreamPluginOptions {
20
20
  enablePhoneStateHandling?: boolean
21
21
  enableNotifications?: boolean
22
22
  enableBackgroundAudio?: boolean
23
+ iosBackgroundModes?: {
24
+ useVoIP?: boolean
25
+ useAudio?: boolean
26
+ useProcessing?: boolean
27
+ useLocation?: boolean
28
+ useExternalAccessory?: boolean
29
+ }
30
+ iosConfig?: {
31
+ allowBackgroundAudioControls?: boolean
32
+ backgroundProcessingTitle?: string
33
+ keepAliveInBackground?: boolean
34
+ }
23
35
  }
24
36
 
25
37
  const withRecordingPermission: ConfigPlugin<AudioStreamPluginOptions> = (
26
38
  config: ExpoConfig,
27
39
  props: AudioStreamPluginOptions | void
28
40
  ) => {
29
- // Default options if pluginOptions is undefined (void)
30
41
  const options: AudioStreamPluginOptions = {
31
42
  enablePhoneStateHandling: true,
32
43
  enableNotifications: true,
33
44
  enableBackgroundAudio: true,
45
+ iosBackgroundModes: {
46
+ useVoIP: false,
47
+ useAudio: false,
48
+ useProcessing: false,
49
+ useLocation: false,
50
+ useExternalAccessory: false,
51
+ },
52
+ iosConfig: {
53
+ allowBackgroundAudioControls: false,
54
+ backgroundProcessingTitle: 'Audio Recording',
55
+ keepAliveInBackground: true,
56
+ },
34
57
  ...(props || {}),
35
58
  }
36
59
 
@@ -58,14 +81,16 @@ const withRecordingPermission: ConfigPlugin<AudioStreamPluginOptions> = (
58
81
  const existingBackgroundModes =
59
82
  config.modResults.UIBackgroundModes || []
60
83
 
84
+ // Only add background modes if explicitly enabled
61
85
  if (
86
+ options.iosBackgroundModes?.useAudio &&
62
87
  enableBackgroundAudio &&
63
88
  !existingBackgroundModes.includes('audio')
64
89
  ) {
65
90
  existingBackgroundModes.push('audio')
66
91
  }
67
92
 
68
- if (enablePhoneStateHandling) {
93
+ if (options.iosBackgroundModes?.useVoIP && enablePhoneStateHandling) {
69
94
  if (!existingBackgroundModes.includes('voip')) {
70
95
  existingBackgroundModes.push('voip')
71
96
  }
@@ -78,6 +103,44 @@ const withRecordingPermission: ConfigPlugin<AudioStreamPluginOptions> = (
78
103
  existingCapabilities
79
104
  }
80
105
 
106
+ // Add additional background modes if enabled
107
+ if (options.iosBackgroundModes?.useProcessing) {
108
+ if (!existingBackgroundModes.includes('processing')) {
109
+ existingBackgroundModes.push('processing')
110
+ }
111
+ // Add processing info if enabled
112
+ config.modResults.BGTaskSchedulerPermittedIdentifiers = [
113
+ 'com.siteed.audiostream.processing'
114
+ ]
115
+ }
116
+
117
+ if (options.iosBackgroundModes?.useLocation) {
118
+ if (!existingBackgroundModes.includes('location')) {
119
+ existingBackgroundModes.push('location')
120
+ }
121
+ }
122
+
123
+ if (options.iosBackgroundModes?.useExternalAccessory) {
124
+ if (!existingBackgroundModes.includes('external-accessory')) {
125
+ existingBackgroundModes.push('external-accessory')
126
+ }
127
+ }
128
+
129
+ // Configure background processing info if enabled
130
+ if (options.iosConfig?.backgroundProcessingTitle) {
131
+ config.modResults.BGProcessingTaskTitle =
132
+ options.iosConfig.backgroundProcessingTitle
133
+ }
134
+
135
+ // Configure audio session behavior
136
+ if (options.iosConfig?.allowBackgroundAudioControls) {
137
+ config.modResults.UIBackgroundModes = [
138
+ ...existingBackgroundModes,
139
+ 'remote-notification'
140
+ ]
141
+ config.modResults.MPNowPlayingInfoPropertyPlaybackRate = true
142
+ }
143
+
81
144
  config.modResults.UIBackgroundModes = existingBackgroundModes
82
145
  return config
83
146
  })