react-native-audio-api 0.11.0-nightly-141c86f-20251118 → 0.11.0-nightly-0a987bc-20251120

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 (173) hide show
  1. package/android/src/main/cpp/audioapi/android/AudioAPIModule.cpp +10 -16
  2. package/android/src/main/cpp/audioapi/android/OnLoad.cpp +1 -2
  3. package/android/src/main/cpp/audioapi/android/core/AndroidAudioRecorder.cpp +4 -4
  4. package/android/src/main/cpp/audioapi/android/core/AudioPlayer.cpp +11 -20
  5. package/android/src/main/cpp/audioapi/android/core/utils/AudioDecoder.cpp +24 -46
  6. package/common/cpp/audioapi/AudioAPIModuleInstaller.h +48 -78
  7. package/common/cpp/audioapi/HostObjects/AudioContextHostObject.cpp +20 -21
  8. package/common/cpp/audioapi/HostObjects/AudioNodeHostObject.cpp +3 -4
  9. package/common/cpp/audioapi/HostObjects/AudioParamHostObject.cpp +6 -8
  10. package/common/cpp/audioapi/HostObjects/AudioParamHostObject.h +2 -2
  11. package/common/cpp/audioapi/HostObjects/BaseAudioContextHostObject.cpp +42 -78
  12. package/common/cpp/audioapi/HostObjects/BaseAudioContextHostObject.h +1 -1
  13. package/common/cpp/audioapi/HostObjects/OfflineAudioContextHostObject.cpp +14 -18
  14. package/common/cpp/audioapi/HostObjects/OfflineAudioContextHostObject.h +3 -3
  15. package/common/cpp/audioapi/HostObjects/WorkletNodeHostObject.h +1 -2
  16. package/common/cpp/audioapi/HostObjects/WorkletProcessingNodeHostObject.h +1 -2
  17. package/common/cpp/audioapi/HostObjects/analysis/AnalyserNodeHostObject.cpp +10 -18
  18. package/common/cpp/audioapi/HostObjects/destinations/AudioDestinationNodeHostObject.h +2 -3
  19. package/common/cpp/audioapi/HostObjects/effects/BiquadFilterNodeHostObject.cpp +16 -28
  20. package/common/cpp/audioapi/HostObjects/effects/BiquadFilterNodeHostObject.h +1 -2
  21. package/common/cpp/audioapi/HostObjects/effects/ConvolverNodeHostObject.cpp +4 -6
  22. package/common/cpp/audioapi/HostObjects/effects/GainNodeHostObject.cpp +2 -2
  23. package/common/cpp/audioapi/HostObjects/effects/PeriodicWaveHostObject.h +1 -2
  24. package/common/cpp/audioapi/HostObjects/effects/StereoPannerNodeHostObject.cpp +2 -2
  25. package/common/cpp/audioapi/HostObjects/effects/StereoPannerNodeHostObject.h +1 -2
  26. package/common/cpp/audioapi/HostObjects/events/AudioEventHandlerRegistryHostObject.cpp +6 -12
  27. package/common/cpp/audioapi/HostObjects/events/AudioEventHandlerRegistryHostObject.h +7 -7
  28. package/common/cpp/audioapi/HostObjects/inputs/AudioRecorderHostObject.cpp +8 -10
  29. package/common/cpp/audioapi/HostObjects/inputs/AudioRecorderHostObject.h +1 -1
  30. package/common/cpp/audioapi/HostObjects/sources/AudioBufferBaseSourceNodeHostObject.cpp +13 -27
  31. package/common/cpp/audioapi/HostObjects/sources/AudioBufferBaseSourceNodeHostObject.h +11 -12
  32. package/common/cpp/audioapi/HostObjects/sources/AudioBufferHostObject.cpp +15 -22
  33. package/common/cpp/audioapi/HostObjects/sources/AudioBufferHostObject.h +5 -7
  34. package/common/cpp/audioapi/HostObjects/sources/AudioBufferQueueSourceNodeHostObject.cpp +7 -12
  35. package/common/cpp/audioapi/HostObjects/sources/AudioBufferQueueSourceNodeHostObject.h +8 -9
  36. package/common/cpp/audioapi/HostObjects/sources/AudioBufferSourceNodeHostObject.cpp +16 -30
  37. package/common/cpp/audioapi/HostObjects/sources/AudioBufferSourceNodeHostObject.h +2 -4
  38. package/common/cpp/audioapi/HostObjects/sources/AudioScheduledSourceNodeHostObject.cpp +6 -10
  39. package/common/cpp/audioapi/HostObjects/sources/ConstantSourceNodeHostObject.cpp +2 -2
  40. package/common/cpp/audioapi/HostObjects/sources/ConstantSourceNodeHostObject.h +1 -2
  41. package/common/cpp/audioapi/HostObjects/sources/OscillatorNodeHostObject.cpp +6 -8
  42. package/common/cpp/audioapi/HostObjects/sources/OscillatorNodeHostObject.h +1 -2
  43. package/common/cpp/audioapi/HostObjects/sources/RecorderAdapterNodeHostObject.h +4 -5
  44. package/common/cpp/audioapi/HostObjects/sources/StreamerNodeHostObject.cpp +2 -2
  45. package/common/cpp/audioapi/HostObjects/sources/StreamerNodeHostObject.h +5 -6
  46. package/common/cpp/audioapi/HostObjects/sources/WorkletSourceNodeHostObject.h +1 -2
  47. package/common/cpp/audioapi/HostObjects/utils/AudioDecoderHostObject.cpp +39 -60
  48. package/common/cpp/audioapi/HostObjects/utils/AudioStretcherHostObject.cpp +4 -8
  49. package/common/cpp/audioapi/core/AudioContext.cpp +4 -4
  50. package/common/cpp/audioapi/core/AudioContext.h +5 -2
  51. package/common/cpp/audioapi/core/AudioNode.cpp +13 -19
  52. package/common/cpp/audioapi/core/AudioNode.h +14 -7
  53. package/common/cpp/audioapi/core/AudioParam.cpp +66 -98
  54. package/common/cpp/audioapi/core/AudioParam.h +20 -12
  55. package/common/cpp/audioapi/core/BaseAudioContext.cpp +22 -34
  56. package/common/cpp/audioapi/core/BaseAudioContext.h +19 -15
  57. package/common/cpp/audioapi/core/OfflineAudioContext.cpp +12 -17
  58. package/common/cpp/audioapi/core/OfflineAudioContext.h +10 -5
  59. package/common/cpp/audioapi/core/analysis/AnalyserNode.cpp +13 -21
  60. package/common/cpp/audioapi/core/analysis/AnalyserNode.h +8 -6
  61. package/common/cpp/audioapi/core/destinations/AudioDestinationNode.cpp +1 -0
  62. package/common/cpp/audioapi/core/destinations/AudioDestinationNode.h +5 -3
  63. package/common/cpp/audioapi/core/effects/BiquadFilterNode.cpp +17 -36
  64. package/common/cpp/audioapi/core/effects/BiquadFilterNode.h +2 -9
  65. package/common/cpp/audioapi/core/effects/ConvolverNode.cpp +18 -28
  66. package/common/cpp/audioapi/core/effects/ConvolverNode.h +19 -10
  67. package/common/cpp/audioapi/core/effects/GainNode.cpp +1 -0
  68. package/common/cpp/audioapi/core/effects/GainNode.h +3 -1
  69. package/common/cpp/audioapi/core/effects/PeriodicWave.cpp +22 -35
  70. package/common/cpp/audioapi/core/effects/PeriodicWave.h +4 -9
  71. package/common/cpp/audioapi/core/effects/StereoPannerNode.cpp +4 -5
  72. package/common/cpp/audioapi/core/effects/StereoPannerNode.h +4 -2
  73. package/common/cpp/audioapi/core/effects/WorkletNode.cpp +11 -13
  74. package/common/cpp/audioapi/core/effects/WorkletNode.h +15 -12
  75. package/common/cpp/audioapi/core/effects/WorkletProcessingNode.cpp +4 -4
  76. package/common/cpp/audioapi/core/effects/WorkletProcessingNode.h +15 -14
  77. package/common/cpp/audioapi/core/inputs/AudioRecorder.cpp +9 -8
  78. package/common/cpp/audioapi/core/inputs/AudioRecorder.h +4 -5
  79. package/common/cpp/audioapi/core/sources/AudioBuffer.cpp +4 -6
  80. package/common/cpp/audioapi/core/sources/AudioBuffer.h +4 -7
  81. package/common/cpp/audioapi/core/sources/AudioBufferBaseSourceNode.cpp +31 -53
  82. package/common/cpp/audioapi/core/sources/AudioBufferBaseSourceNode.h +35 -33
  83. package/common/cpp/audioapi/core/sources/AudioBufferQueueSourceNode.cpp +19 -20
  84. package/common/cpp/audioapi/core/sources/AudioBufferQueueSourceNode.h +38 -36
  85. package/common/cpp/audioapi/core/sources/AudioBufferSourceNode.cpp +25 -40
  86. package/common/cpp/audioapi/core/sources/AudioBufferSourceNode.h +3 -1
  87. package/common/cpp/audioapi/core/sources/AudioScheduledSourceNode.cpp +9 -9
  88. package/common/cpp/audioapi/core/sources/AudioScheduledSourceNode.h +3 -3
  89. package/common/cpp/audioapi/core/sources/ConstantSourceNode.cpp +3 -4
  90. package/common/cpp/audioapi/core/sources/ConstantSourceNode.h +3 -1
  91. package/common/cpp/audioapi/core/sources/OscillatorNode.cpp +12 -23
  92. package/common/cpp/audioapi/core/sources/OscillatorNode.h +6 -4
  93. package/common/cpp/audioapi/core/sources/RecorderAdapterNode.cpp +3 -4
  94. package/common/cpp/audioapi/core/sources/RecorderAdapterNode.h +18 -16
  95. package/common/cpp/audioapi/core/sources/StreamerNode.cpp +12 -9
  96. package/common/cpp/audioapi/core/sources/StreamerNode.h +38 -30
  97. package/common/cpp/audioapi/core/sources/WorkletSourceNode.cpp +5 -7
  98. package/common/cpp/audioapi/core/sources/WorkletSourceNode.h +15 -13
  99. package/common/cpp/audioapi/core/types/AudioFormat.h +1 -11
  100. package/common/cpp/audioapi/core/utils/AudioDecoder.h +15 -6
  101. package/common/cpp/audioapi/core/utils/AudioNodeDestructor.cpp +5 -6
  102. package/common/cpp/audioapi/core/utils/AudioNodeDestructor.h +7 -10
  103. package/common/cpp/audioapi/core/utils/AudioNodeManager.cpp +13 -22
  104. package/common/cpp/audioapi/core/utils/AudioNodeManager.h +8 -11
  105. package/common/cpp/audioapi/core/utils/AudioParamEventQueue.cpp +3 -3
  106. package/common/cpp/audioapi/core/utils/AudioParamEventQueue.h +5 -5
  107. package/common/cpp/audioapi/core/utils/AudioStretcher.cpp +6 -6
  108. package/common/cpp/audioapi/core/utils/Constants.h +5 -3
  109. package/common/cpp/audioapi/core/utils/ParamChangeEvent.cpp +1 -0
  110. package/common/cpp/audioapi/core/utils/ParamChangeEvent.h +9 -9
  111. package/common/cpp/audioapi/core/utils/worklets/SafeIncludes.h +29 -34
  112. package/common/cpp/audioapi/core/utils/worklets/WorkletsRunner.cpp +14 -16
  113. package/common/cpp/audioapi/core/utils/worklets/WorkletsRunner.h +23 -19
  114. package/common/cpp/audioapi/dsp/AudioUtils.cpp +3 -9
  115. package/common/cpp/audioapi/dsp/AudioUtils.h +1 -1
  116. package/common/cpp/audioapi/dsp/Convolver.cpp +13 -25
  117. package/common/cpp/audioapi/dsp/Convolver.h +26 -24
  118. package/common/cpp/audioapi/dsp/FFT.cpp +1 -1
  119. package/common/cpp/audioapi/dsp/FFT.h +5 -13
  120. package/common/cpp/audioapi/dsp/VectorMath.cpp +9 -43
  121. package/common/cpp/audioapi/dsp/VectorMath.h +35 -8
  122. package/common/cpp/audioapi/dsp/Windows.cpp +4 -9
  123. package/common/cpp/audioapi/dsp/Windows.h +24 -23
  124. package/common/cpp/audioapi/events/AudioEventHandlerRegistry.cpp +12 -17
  125. package/common/cpp/audioapi/events/AudioEventHandlerRegistry.h +44 -39
  126. package/common/cpp/audioapi/events/IAudioEventHandlerRegistry.h +15 -7
  127. package/common/cpp/audioapi/jsi/AudioArrayBuffer.h +4 -5
  128. package/common/cpp/audioapi/jsi/JsiHostObject.cpp +11 -13
  129. package/common/cpp/audioapi/jsi/JsiHostObject.h +26 -33
  130. package/common/cpp/audioapi/jsi/JsiPromise.cpp +11 -21
  131. package/common/cpp/audioapi/jsi/JsiPromise.h +55 -46
  132. package/common/cpp/audioapi/jsi/RuntimeLifecycleMonitor.cpp +7 -10
  133. package/common/cpp/audioapi/jsi/RuntimeLifecycleMonitor.h +1 -3
  134. package/common/cpp/audioapi/utils/AudioArray.cpp +3 -8
  135. package/common/cpp/audioapi/utils/AudioArray.h +3 -11
  136. package/common/cpp/audioapi/utils/AudioBus.cpp +51 -149
  137. package/common/cpp/audioapi/utils/AudioBus.h +15 -15
  138. package/common/cpp/audioapi/utils/CircularAudioArray.cpp +6 -18
  139. package/common/cpp/audioapi/utils/CircularOverflowableAudioArray.cpp +6 -10
  140. package/common/cpp/audioapi/utils/CircularOverflowableAudioArray.h +2 -2
  141. package/common/cpp/test/src/AudioParamTest.cpp +3 -2
  142. package/common/cpp/test/src/AudioScheduledSourceTest.cpp +14 -35
  143. package/common/cpp/test/src/ConstantSourceTest.cpp +4 -6
  144. package/common/cpp/test/src/GainTest.cpp +3 -4
  145. package/common/cpp/test/src/MockAudioEventHandlerRegistry.h +19 -11
  146. package/common/cpp/test/src/OscillatorTest.cpp +1 -0
  147. package/common/cpp/test/src/StereoPannerTest.cpp +5 -8
  148. package/common/cpp/test/src/biquad/BiquadFilterChromium.cpp +10 -27
  149. package/common/cpp/test/src/biquad/BiquadFilterChromium.h +7 -6
  150. package/common/cpp/test/src/biquad/BiquadFilterTest.cpp +16 -28
  151. package/common/cpp/test/src/biquad/BiquadFilterTest.h +13 -6
  152. package/ios/audioapi/ios/AudioAPIModule.h +4 -6
  153. package/ios/audioapi/ios/AudioAPIModule.mm +31 -46
  154. package/ios/audioapi/ios/core/IOSAudioPlayer.mm +24 -33
  155. package/ios/audioapi/ios/core/IOSAudioRecorder.h +1 -2
  156. package/ios/audioapi/ios/core/IOSAudioRecorder.mm +4 -6
  157. package/ios/audioapi/ios/core/NativeAudioPlayer.m +3 -5
  158. package/ios/audioapi/ios/core/NativeAudioRecorder.h +1 -2
  159. package/ios/audioapi/ios/core/NativeAudioRecorder.m +21 -33
  160. package/ios/audioapi/ios/core/utils/AudioDecoder.mm +17 -37
  161. package/ios/audioapi/ios/system/AudioEngine.h +2 -4
  162. package/ios/audioapi/ios/system/AudioEngine.mm +7 -19
  163. package/ios/audioapi/ios/system/AudioSessionManager.h +2 -4
  164. package/ios/audioapi/ios/system/AudioSessionManager.mm +17 -32
  165. package/ios/audioapi/ios/system/LockScreenManager.mm +73 -105
  166. package/ios/audioapi/ios/system/NotificationManager.mm +43 -68
  167. package/lib/commonjs/core/AudioParam.js +18 -11
  168. package/lib/commonjs/core/AudioParam.js.map +1 -1
  169. package/lib/module/core/AudioParam.js +18 -11
  170. package/lib/module/core/AudioParam.js.map +1 -1
  171. package/lib/typescript/core/AudioParam.d.ts.map +1 -1
  172. package/package.json +2 -2
  173. package/src/core/AudioParam.ts +18 -11
@@ -20,21 +20,24 @@ export default class AudioParam {
20
20
  if (startTime < 0) {
21
21
  throw new RangeError(`startTime must be a finite non-negative number: ${startTime}`);
22
22
  }
23
- this.audioParam.setValueAtTime(value, startTime);
23
+ const clampedTime = Math.max(startTime, this.context.currentTime);
24
+ this.audioParam.setValueAtTime(value, clampedTime);
24
25
  return this;
25
26
  }
26
27
  linearRampToValueAtTime(value, endTime) {
27
28
  if (endTime < 0) {
28
29
  throw new RangeError(`endTime must be a finite non-negative number: ${endTime}`);
29
30
  }
30
- this.audioParam.linearRampToValueAtTime(value, endTime);
31
+ const clampedTime = Math.max(endTime, this.context.currentTime);
32
+ this.audioParam.linearRampToValueAtTime(value, clampedTime);
31
33
  return this;
32
34
  }
33
35
  exponentialRampToValueAtTime(value, endTime) {
34
- if (endTime < 0) {
36
+ if (endTime <= 0) {
35
37
  throw new RangeError(`endTime must be a finite non-negative number: ${endTime}`);
36
38
  }
37
- this.audioParam.exponentialRampToValueAtTime(value, endTime);
39
+ const clampedTime = Math.max(endTime, this.context.currentTime);
40
+ this.audioParam.exponentialRampToValueAtTime(value, clampedTime);
38
41
  return this;
39
42
  }
40
43
  setTargetAtTime(target, startTime, timeConstant) {
@@ -42,36 +45,40 @@ export default class AudioParam {
42
45
  throw new RangeError(`startTime must be a finite non-negative number: ${startTime}`);
43
46
  }
44
47
  if (timeConstant < 0) {
45
- throw new RangeError(`timeConstant must be a finite non-negative number: ${startTime}`);
48
+ throw new RangeError(`timeConstant must be a finite non-negative number: ${timeConstant}`);
46
49
  }
47
- this.audioParam.setTargetAtTime(target, startTime, timeConstant);
50
+ const clampedTime = Math.max(startTime, this.context.currentTime);
51
+ this.audioParam.setTargetAtTime(target, clampedTime, timeConstant);
48
52
  return this;
49
53
  }
50
54
  setValueCurveAtTime(values, startTime, duration) {
51
55
  if (startTime < 0) {
52
56
  throw new RangeError(`startTime must be a finite non-negative number: ${startTime}`);
53
57
  }
54
- if (duration < 0) {
55
- throw new RangeError(`duration must be a finite non-negative number: ${startTime}`);
58
+ if (duration <= 0) {
59
+ throw new RangeError(`duration must be a finite strictly-positive number: ${duration}`);
56
60
  }
57
61
  if (values.length < 2) {
58
62
  throw new InvalidStateError(`values must contain at least two values`);
59
63
  }
60
- this.audioParam.setValueCurveAtTime(values, startTime, duration);
64
+ const clampedTime = Math.max(startTime, this.context.currentTime);
65
+ this.audioParam.setValueCurveAtTime(values, clampedTime, duration);
61
66
  return this;
62
67
  }
63
68
  cancelScheduledValues(cancelTime) {
64
69
  if (cancelTime < 0) {
65
70
  throw new RangeError(`cancelTime must be a finite non-negative number: ${cancelTime}`);
66
71
  }
67
- this.audioParam.cancelScheduledValues(cancelTime);
72
+ const clampedTime = Math.max(cancelTime, this.context.currentTime);
73
+ this.audioParam.cancelScheduledValues(clampedTime);
68
74
  return this;
69
75
  }
70
76
  cancelAndHoldAtTime(cancelTime) {
71
77
  if (cancelTime < 0) {
72
78
  throw new RangeError(`cancelTime must be a finite non-negative number: ${cancelTime}`);
73
79
  }
74
- this.audioParam.cancelAndHoldAtTime(cancelTime);
80
+ const clampedTime = Math.max(cancelTime, this.context.currentTime);
81
+ this.audioParam.cancelAndHoldAtTime(clampedTime);
75
82
  return this;
76
83
  }
77
84
  }
@@ -1 +1 @@
1
- {"version":3,"names":["RangeError","InvalidStateError","AudioParam","constructor","audioParam","context","value","defaultValue","minValue","maxValue","setValueAtTime","startTime","linearRampToValueAtTime","endTime","exponentialRampToValueAtTime","setTargetAtTime","target","timeConstant","setValueCurveAtTime","values","duration","length","cancelScheduledValues","cancelTime","cancelAndHoldAtTime"],"sourceRoot":"../../../src","sources":["core/AudioParam.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["RangeError","InvalidStateError","AudioParam","constructor","audioParam","context","value","defaultValue","minValue","maxValue","setValueAtTime","startTime","clampedTime","Math","max","currentTime","linearRampToValueAtTime","endTime","exponentialRampToValueAtTime","setTargetAtTime","target","timeConstant","setValueCurveAtTime","values","duration","length","cancelScheduledValues","cancelTime","cancelAndHoldAtTime"],"sourceRoot":"../../../src","sources":["core/AudioParam.ts"],"mappings":";;AACA,SAASA,UAAU,EAAEC,iBAAiB,QAAQ,oBAAW;AAGzD,eAAe,MAAMC,UAAU,CAAC;EAO9BC,WAAWA,CAACC,UAAuB,EAAEC,OAAyB,EAAE;IAC9D,IAAI,CAACD,UAAU,GAAGA,UAAU;IAC5B,IAAI,CAACE,KAAK,GAAGF,UAAU,CAACE,KAAK;IAC7B,IAAI,CAACC,YAAY,GAAGH,UAAU,CAACG,YAAY;IAC3C,IAAI,CAACC,QAAQ,GAAGJ,UAAU,CAACI,QAAQ;IACnC,IAAI,CAACC,QAAQ,GAAGL,UAAU,CAACK,QAAQ;IACnC,IAAI,CAACJ,OAAO,GAAGA,OAAO;EACxB;EAEA,IAAWC,KAAKA,CAAA,EAAW;IACzB,OAAO,IAAI,CAACF,UAAU,CAACE,KAAK;EAC9B;EAEA,IAAWA,KAAKA,CAACA,KAAa,EAAE;IAC9B,IAAI,CAACF,UAAU,CAACE,KAAK,GAAGA,KAAK;EAC/B;EAEOI,cAAcA,CAACJ,KAAa,EAAEK,SAAiB,EAAc;IAClE,IAAIA,SAAS,GAAG,CAAC,EAAE;MACjB,MAAM,IAAIX,UAAU,CAClB,mDAAmDW,SAAS,EAC9D,CAAC;IACH;IAEA,MAAMC,WAAW,GAAGC,IAAI,CAACC,GAAG,CAACH,SAAS,EAAE,IAAI,CAACN,OAAO,CAACU,WAAW,CAAC;IACjE,IAAI,CAACX,UAAU,CAACM,cAAc,CAACJ,KAAK,EAAEM,WAAW,CAAC;IAElD,OAAO,IAAI;EACb;EAEOI,uBAAuBA,CAACV,KAAa,EAAEW,OAAe,EAAc;IACzE,IAAIA,OAAO,GAAG,CAAC,EAAE;MACf,MAAM,IAAIjB,UAAU,CAClB,iDAAiDiB,OAAO,EAC1D,CAAC;IACH;IAEA,MAAML,WAAW,GAAGC,IAAI,CAACC,GAAG,CAACG,OAAO,EAAE,IAAI,CAACZ,OAAO,CAACU,WAAW,CAAC;IAC/D,IAAI,CAACX,UAAU,CAACY,uBAAuB,CAACV,KAAK,EAAEM,WAAW,CAAC;IAE3D,OAAO,IAAI;EACb;EAEOM,4BAA4BA,CACjCZ,KAAa,EACbW,OAAe,EACH;IACZ,IAAIA,OAAO,IAAI,CAAC,EAAE;MAChB,MAAM,IAAIjB,UAAU,CAClB,iDAAiDiB,OAAO,EAC1D,CAAC;IACH;IAEA,MAAML,WAAW,GAAGC,IAAI,CAACC,GAAG,CAACG,OAAO,EAAE,IAAI,CAACZ,OAAO,CAACU,WAAW,CAAC;IAC/D,IAAI,CAACX,UAAU,CAACc,4BAA4B,CAACZ,KAAK,EAAEM,WAAW,CAAC;IAEhE,OAAO,IAAI;EACb;EAEOO,eAAeA,CACpBC,MAAc,EACdT,SAAiB,EACjBU,YAAoB,EACR;IACZ,IAAIV,SAAS,GAAG,CAAC,EAAE;MACjB,MAAM,IAAIX,UAAU,CAClB,mDAAmDW,SAAS,EAC9D,CAAC;IACH;IAEA,IAAIU,YAAY,GAAG,CAAC,EAAE;MACpB,MAAM,IAAIrB,UAAU,CAClB,sDAAsDqB,YAAY,EACpE,CAAC;IACH;IAEA,MAAMT,WAAW,GAAGC,IAAI,CAACC,GAAG,CAACH,SAAS,EAAE,IAAI,CAACN,OAAO,CAACU,WAAW,CAAC;IACjE,IAAI,CAACX,UAAU,CAACe,eAAe,CAACC,MAAM,EAAER,WAAW,EAAES,YAAY,CAAC;IAElE,OAAO,IAAI;EACb;EAEOC,mBAAmBA,CACxBC,MAAoB,EACpBZ,SAAiB,EACjBa,QAAgB,EACJ;IACZ,IAAIb,SAAS,GAAG,CAAC,EAAE;MACjB,MAAM,IAAIX,UAAU,CAClB,mDAAmDW,SAAS,EAC9D,CAAC;IACH;IAEA,IAAIa,QAAQ,IAAI,CAAC,EAAE;MACjB,MAAM,IAAIxB,UAAU,CAClB,uDAAuDwB,QAAQ,EACjE,CAAC;IACH;IAEA,IAAID,MAAM,CAACE,MAAM,GAAG,CAAC,EAAE;MACrB,MAAM,IAAIxB,iBAAiB,CAAC,yCAAyC,CAAC;IACxE;IAEA,MAAMW,WAAW,GAAGC,IAAI,CAACC,GAAG,CAACH,SAAS,EAAE,IAAI,CAACN,OAAO,CAACU,WAAW,CAAC;IACjE,IAAI,CAACX,UAAU,CAACkB,mBAAmB,CAACC,MAAM,EAAEX,WAAW,EAAEY,QAAQ,CAAC;IAElE,OAAO,IAAI;EACb;EAEOE,qBAAqBA,CAACC,UAAkB,EAAc;IAC3D,IAAIA,UAAU,GAAG,CAAC,EAAE;MAClB,MAAM,IAAI3B,UAAU,CAClB,oDAAoD2B,UAAU,EAChE,CAAC;IACH;IAEA,MAAMf,WAAW,GAAGC,IAAI,CAACC,GAAG,CAACa,UAAU,EAAE,IAAI,CAACtB,OAAO,CAACU,WAAW,CAAC;IAClE,IAAI,CAACX,UAAU,CAACsB,qBAAqB,CAACd,WAAW,CAAC;IAElD,OAAO,IAAI;EACb;EAEOgB,mBAAmBA,CAACD,UAAkB,EAAc;IACzD,IAAIA,UAAU,GAAG,CAAC,EAAE;MAClB,MAAM,IAAI3B,UAAU,CAClB,oDAAoD2B,UAAU,EAChE,CAAC;IACH;IAEA,MAAMf,WAAW,GAAGC,IAAI,CAACC,GAAG,CAACa,UAAU,EAAE,IAAI,CAACtB,OAAO,CAACU,WAAW,CAAC;IAClE,IAAI,CAACX,UAAU,CAACwB,mBAAmB,CAAChB,WAAW,CAAC;IAEhD,OAAO,IAAI;EACb;AACF","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"AudioParam.d.ts","sourceRoot":"","sources":["../../../src/core/AudioParam.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAElD,MAAM,CAAC,OAAO,OAAO,UAAU;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;gBAEvB,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,gBAAgB;IAS9D,IAAW,KAAK,IAAI,MAAM,CAEzB;IAED,IAAW,KAAK,CAAC,KAAK,EAAE,MAAM,EAE7B;IAEM,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,UAAU;IAY5D,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU;IAYnE,4BAA4B,CACjC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GACd,UAAU;IAYN,eAAe,CACpB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,GACnB,UAAU;IAkBN,mBAAmB,CACxB,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GACf,UAAU;IAsBN,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU;IAYrD,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU;CAW3D"}
1
+ {"version":3,"file":"AudioParam.d.ts","sourceRoot":"","sources":["../../../src/core/AudioParam.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAElD,MAAM,CAAC,OAAO,OAAO,UAAU;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;gBAEvB,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,gBAAgB;IAS9D,IAAW,KAAK,IAAI,MAAM,CAEzB;IAED,IAAW,KAAK,CAAC,KAAK,EAAE,MAAM,EAE7B;IAEM,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,UAAU;IAa5D,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU;IAanE,4BAA4B,CACjC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GACd,UAAU;IAaN,eAAe,CACpB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,GACnB,UAAU;IAmBN,mBAAmB,CACxB,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GACf,UAAU;IAuBN,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU;IAarD,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU;CAY3D"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-audio-api",
3
- "version": "0.11.0-nightly-141c86f-20251118",
3
+ "version": "0.11.0-nightly-0a987bc-20251120",
4
4
  "description": "react-native-audio-api provides system for controlling audio in React Native environment compatible with Web Audio API specification",
5
5
  "bin": {
6
6
  "setup-rn-audio-api-web": "./scripts/setup-rn-audio-api-web.js"
@@ -53,7 +53,7 @@
53
53
  "format:android:cpp": "find android/src/ -path android/src/main/cpp/audioapi/android/libs -iname \"*.h\" -o -iname \"*.cpp\" | xargs clang-format -i",
54
54
  "format:android:kotlin": "ktlint -F 'android/src/main/java/**/*.kt'",
55
55
  "format:ios": "find ios/audioapi/ios -iname \"*.h\" -o -iname \"*.m\" -o -iname \"*.mm\" | xargs clang-format -i",
56
- "format:common": "find common/cpp/ -path 'common/cpp/audioapi/libs' -prune -iname \"*.h\" -o -iname \"*.cpp\" | xargs clang-format -i",
56
+ "format:common": "find common/cpp/ -path 'common/cpp/audioapi/libs' -prune -o -path 'common/cpp/audioapi/external' -prune -o -type f -iname \"*.h\" -print -o -type f -iname \"*.cpp\" -print | xargs clang-format -i",
57
57
  "build": "bob build",
58
58
  "create:package": "./scripts/create-package.sh",
59
59
  "prepack": "cp ../../README.md ./README.md",
@@ -33,7 +33,8 @@ export default class AudioParam {
33
33
  );
34
34
  }
35
35
 
36
- this.audioParam.setValueAtTime(value, startTime);
36
+ const clampedTime = Math.max(startTime, this.context.currentTime);
37
+ this.audioParam.setValueAtTime(value, clampedTime);
37
38
 
38
39
  return this;
39
40
  }
@@ -45,7 +46,8 @@ export default class AudioParam {
45
46
  );
46
47
  }
47
48
 
48
- this.audioParam.linearRampToValueAtTime(value, endTime);
49
+ const clampedTime = Math.max(endTime, this.context.currentTime);
50
+ this.audioParam.linearRampToValueAtTime(value, clampedTime);
49
51
 
50
52
  return this;
51
53
  }
@@ -54,13 +56,14 @@ export default class AudioParam {
54
56
  value: number,
55
57
  endTime: number
56
58
  ): AudioParam {
57
- if (endTime < 0) {
59
+ if (endTime <= 0) {
58
60
  throw new RangeError(
59
61
  `endTime must be a finite non-negative number: ${endTime}`
60
62
  );
61
63
  }
62
64
 
63
- this.audioParam.exponentialRampToValueAtTime(value, endTime);
65
+ const clampedTime = Math.max(endTime, this.context.currentTime);
66
+ this.audioParam.exponentialRampToValueAtTime(value, clampedTime);
64
67
 
65
68
  return this;
66
69
  }
@@ -78,11 +81,12 @@ export default class AudioParam {
78
81
 
79
82
  if (timeConstant < 0) {
80
83
  throw new RangeError(
81
- `timeConstant must be a finite non-negative number: ${startTime}`
84
+ `timeConstant must be a finite non-negative number: ${timeConstant}`
82
85
  );
83
86
  }
84
87
 
85
- this.audioParam.setTargetAtTime(target, startTime, timeConstant);
88
+ const clampedTime = Math.max(startTime, this.context.currentTime);
89
+ this.audioParam.setTargetAtTime(target, clampedTime, timeConstant);
86
90
 
87
91
  return this;
88
92
  }
@@ -98,9 +102,9 @@ export default class AudioParam {
98
102
  );
99
103
  }
100
104
 
101
- if (duration < 0) {
105
+ if (duration <= 0) {
102
106
  throw new RangeError(
103
- `duration must be a finite non-negative number: ${startTime}`
107
+ `duration must be a finite strictly-positive number: ${duration}`
104
108
  );
105
109
  }
106
110
 
@@ -108,7 +112,8 @@ export default class AudioParam {
108
112
  throw new InvalidStateError(`values must contain at least two values`);
109
113
  }
110
114
 
111
- this.audioParam.setValueCurveAtTime(values, startTime, duration);
115
+ const clampedTime = Math.max(startTime, this.context.currentTime);
116
+ this.audioParam.setValueCurveAtTime(values, clampedTime, duration);
112
117
 
113
118
  return this;
114
119
  }
@@ -120,7 +125,8 @@ export default class AudioParam {
120
125
  );
121
126
  }
122
127
 
123
- this.audioParam.cancelScheduledValues(cancelTime);
128
+ const clampedTime = Math.max(cancelTime, this.context.currentTime);
129
+ this.audioParam.cancelScheduledValues(clampedTime);
124
130
 
125
131
  return this;
126
132
  }
@@ -132,7 +138,8 @@ export default class AudioParam {
132
138
  );
133
139
  }
134
140
 
135
- this.audioParam.cancelAndHoldAtTime(cancelTime);
141
+ const clampedTime = Math.max(cancelTime, this.context.currentTime);
142
+ this.audioParam.cancelAndHoldAtTime(clampedTime);
136
143
 
137
144
  return this;
138
145
  }