react-native-audio-api 0.6.0-rc.1 → 0.6.0-rc.2
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/README.md +35 -22
- package/android/src/main/cpp/audioapi/android/core/AndroidAudioRecorder.cpp +73 -0
- package/android/src/main/cpp/audioapi/android/core/AndroidAudioRecorder.h +37 -0
- package/android/src/main/cpp/audioapi/android/core/AudioPlayer.cpp +6 -10
- package/android/src/main/cpp/audioapi/android/core/AudioPlayer.h +2 -3
- package/android/src/main/java/com/swmansion/audioapi/AudioManagerModule.kt +10 -8
- package/android/src/main/java/com/swmansion/audioapi/system/MediaNotificationManager.kt +7 -7
- package/android/src/main/java/com/swmansion/audioapi/system/MediaSessionEventEmitter.kt +4 -0
- package/android/src/main/java/com/swmansion/audioapi/system/MediaSessionManager.kt +31 -13
- package/android/src/main/java/com/swmansion/audioapi/system/VolumeChangeListener.kt +27 -0
- package/common/cpp/audioapi/AudioAPIModuleInstaller.h +29 -5
- package/common/cpp/audioapi/HostObjects/AnalyserNodeHostObject.h +1 -0
- package/common/cpp/audioapi/HostObjects/AudioRecorderHostObject.h +149 -0
- package/common/cpp/audioapi/core/AudioContext.cpp +4 -3
- package/common/cpp/audioapi/core/BaseAudioContext.cpp +6 -6
- package/common/cpp/audioapi/core/inputs/AudioRecorder.h +38 -0
- package/common/cpp/audioapi/core/sources/AudioScheduledSourceNode.h +5 -0
- package/common/cpp/audioapi/core/sources/OscillatorNode.cpp +1 -1
- package/common/cpp/audioapi/core/utils/AudioNodeManager.cpp +45 -11
- package/common/cpp/audioapi/core/utils/AudioNodeManager.h +6 -2
- package/ios/audioapi/ios/AudioManagerModule.mm +9 -10
- package/ios/audioapi/ios/core/IOSAudioPlayer.h +11 -12
- package/ios/audioapi/ios/core/IOSAudioPlayer.mm +22 -16
- package/ios/audioapi/ios/core/IOSAudioRecorder.h +36 -0
- package/ios/audioapi/ios/core/IOSAudioRecorder.mm +62 -0
- package/ios/audioapi/ios/core/{AudioPlayer.h → NativeAudioPlayer.h} +1 -8
- package/ios/audioapi/ios/core/{AudioPlayer.m → NativeAudioPlayer.m} +4 -33
- package/ios/audioapi/ios/core/NativeAudioRecorder.h +25 -0
- package/ios/audioapi/ios/core/NativeAudioRecorder.m +47 -0
- package/ios/audioapi/ios/system/AudioEngine.h +7 -1
- package/ios/audioapi/ios/system/AudioEngine.mm +64 -20
- package/ios/audioapi/ios/system/AudioSessionManager.h +3 -1
- package/ios/audioapi/ios/system/AudioSessionManager.mm +37 -25
- package/ios/audioapi/ios/system/NotificationManager.h +7 -1
- package/ios/audioapi/ios/system/NotificationManager.mm +30 -0
- package/lib/commonjs/api.js +15 -1
- package/lib/commonjs/api.js.map +1 -1
- package/lib/commonjs/core/AudioRecorder.js +51 -0
- package/lib/commonjs/core/AudioRecorder.js.map +1 -0
- package/lib/commonjs/errors/NotSupportedError.js.map +1 -1
- package/lib/commonjs/hooks/useSytemVolume.js +24 -0
- package/lib/commonjs/hooks/useSytemVolume.js.map +1 -0
- package/lib/commonjs/plugin/withAudioAPI.js +1 -1
- package/lib/commonjs/plugin/withAudioAPI.js.map +1 -1
- package/lib/commonjs/specs/NativeAudioManagerModule.js +5 -2
- package/lib/commonjs/specs/NativeAudioManagerModule.js.map +1 -1
- package/lib/commonjs/system/AudioManager.js +23 -50
- package/lib/commonjs/system/AudioManager.js.map +1 -1
- package/lib/module/api.js +3 -1
- package/lib/module/api.js.map +1 -1
- package/lib/module/core/AudioRecorder.js +45 -0
- package/lib/module/core/AudioRecorder.js.map +1 -0
- package/lib/module/errors/NotSupportedError.js.map +1 -1
- package/lib/module/hooks/useSytemVolume.js +19 -0
- package/lib/module/hooks/useSytemVolume.js.map +1 -0
- package/lib/module/plugin/withAudioAPI.js +1 -1
- package/lib/module/plugin/withAudioAPI.js.map +1 -1
- package/lib/module/specs/NativeAudioManagerModule.js +5 -2
- package/lib/module/specs/NativeAudioManagerModule.js.map +1 -1
- package/lib/module/system/AudioManager.js +23 -50
- package/lib/module/system/AudioManager.js.map +1 -1
- package/lib/typescript/api.d.ts +5 -1
- package/lib/typescript/api.d.ts.map +1 -1
- package/lib/typescript/core/AudioRecorder.d.ts +22 -0
- package/lib/typescript/core/AudioRecorder.d.ts.map +1 -0
- package/lib/typescript/errors/NotSupportedError.d.ts.map +1 -1
- package/lib/typescript/hooks/useSytemVolume.d.ts +2 -0
- package/lib/typescript/hooks/useSytemVolume.d.ts.map +1 -0
- package/lib/typescript/interfaces.d.ts +11 -5
- package/lib/typescript/interfaces.d.ts.map +1 -1
- package/lib/typescript/plugin/withAudioAPI.d.ts.map +1 -1
- package/lib/typescript/specs/NativeAudioManagerModule.d.ts +2 -1
- package/lib/typescript/specs/NativeAudioManagerModule.d.ts.map +1 -1
- package/lib/typescript/system/AudioManager.d.ts +4 -3
- package/lib/typescript/system/AudioManager.d.ts.map +1 -1
- package/lib/typescript/system/types.d.ts +26 -7
- package/lib/typescript/system/types.d.ts.map +1 -1
- package/lib/typescript/types.d.ts +5 -0
- package/lib/typescript/types.d.ts.map +1 -1
- package/package.json +2 -1
- package/src/api.ts +13 -2
- package/src/core/AudioRecorder.ts +81 -0
- package/src/hooks/useSytemVolume.ts +19 -0
- package/src/interfaces.ts +25 -11
- package/src/plugin/withAudioAPI.ts +2 -1
- package/src/specs/NativeAudioManagerModule.ts +5 -8
- package/src/system/AudioManager.ts +30 -107
- package/src/system/types.ts +31 -21
- package/src/types.ts +13 -0
- /package/src/errors/{NotSupportedError.tsx → NotSupportedError.ts} +0 -0
|
@@ -13,7 +13,7 @@ class AudioManager {
|
|
|
13
13
|
_specs.AudioManagerModule.resetLockScreenInfo();
|
|
14
14
|
}
|
|
15
15
|
setAudioSessionOptions(options) {
|
|
16
|
-
_specs.AudioManagerModule.setAudioSessionOptions(options.iosCategory ?? '', options.iosMode ?? '', options.iosOptions ?? []
|
|
16
|
+
_specs.AudioManagerModule.setAudioSessionOptions(options.iosCategory ?? '', options.iosMode ?? '', options.iosOptions ?? []);
|
|
17
17
|
}
|
|
18
18
|
getDevicePreferredSampleRate() {
|
|
19
19
|
return _specs.AudioManagerModule.getDevicePreferredSampleRate();
|
|
@@ -21,56 +21,29 @@ class AudioManager {
|
|
|
21
21
|
observeAudioInterruptions(enabled) {
|
|
22
22
|
_specs.AudioManagerModule.observeAudioInterruptions(enabled);
|
|
23
23
|
}
|
|
24
|
-
|
|
25
|
-
_specs.AudioManagerModule.
|
|
24
|
+
observeVolumeChanges(enabled) {
|
|
25
|
+
_specs.AudioManagerModule.observeVolumeChanges(enabled);
|
|
26
|
+
}
|
|
27
|
+
enableRemoteCommand(name) {
|
|
28
|
+
_specs.AudioManagerModule.enableRemoteCommand(name, true);
|
|
29
|
+
}
|
|
30
|
+
enableRemoteEvent(name, callback) {
|
|
26
31
|
let subscription = null;
|
|
27
|
-
if (
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
subscription = _specs.eventEmitter.addListener('onRemoteChangePlaybackRate', callback);
|
|
43
|
-
break;
|
|
44
|
-
case 'nextTrack':
|
|
45
|
-
subscription = _specs.eventEmitter.addListener('onRemoteNextTrack', callback);
|
|
46
|
-
break;
|
|
47
|
-
case 'previousTrack':
|
|
48
|
-
subscription = _specs.eventEmitter.addListener('onRemotePreviousTrack', callback);
|
|
49
|
-
break;
|
|
50
|
-
case 'skipForward':
|
|
51
|
-
subscription = _specs.eventEmitter.addListener('onRemoteSkipForward', callback);
|
|
52
|
-
break;
|
|
53
|
-
case 'skipBackward':
|
|
54
|
-
subscription = _specs.eventEmitter.addListener('onRemoteSkipBackward', callback);
|
|
55
|
-
break;
|
|
56
|
-
case 'seekForward':
|
|
57
|
-
subscription = _specs.eventEmitter.addListener('onRemoteSeekForward', callback);
|
|
58
|
-
break;
|
|
59
|
-
case 'seekBackward':
|
|
60
|
-
subscription = _specs.eventEmitter.addListener('onRemoteSeekBackward', callback);
|
|
61
|
-
break;
|
|
62
|
-
case 'changePlaybackPosition':
|
|
63
|
-
subscription = _specs.eventEmitter.addListener('onRemoteChangePlaybackPosition', callback);
|
|
64
|
-
break;
|
|
65
|
-
case 'interruption':
|
|
66
|
-
subscription = _specs.eventEmitter.addListener('onInterruption', callback);
|
|
67
|
-
break;
|
|
68
|
-
case 'routeChange':
|
|
69
|
-
subscription = _specs.eventEmitter.addListener('onRouteChange', callback);
|
|
70
|
-
break;
|
|
71
|
-
default:
|
|
72
|
-
console.error('Unsupported RemoteControl action:', name);
|
|
73
|
-
}
|
|
32
|
+
if (!callback) {
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
switch (name) {
|
|
36
|
+
case 'interruption':
|
|
37
|
+
subscription = _specs.eventEmitter.addListener('onInterruption', callback);
|
|
38
|
+
break;
|
|
39
|
+
case 'routeChange':
|
|
40
|
+
subscription = _specs.eventEmitter.addListener('onRouteChange', callback);
|
|
41
|
+
break;
|
|
42
|
+
case 'volumeChange':
|
|
43
|
+
subscription = _specs.eventEmitter.addListener('onVolumeChange', callback);
|
|
44
|
+
break;
|
|
45
|
+
default:
|
|
46
|
+
console.error('Unsupported RemoteControl action:', name);
|
|
74
47
|
}
|
|
75
48
|
return subscription;
|
|
76
49
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_specs","require","AudioManager","setLockScreenInfo","info","AudioManagerModule","resetLockScreenInfo","setAudioSessionOptions","options","iosCategory","iosMode","iosOptions","
|
|
1
|
+
{"version":3,"names":["_specs","require","AudioManager","setLockScreenInfo","info","AudioManagerModule","resetLockScreenInfo","setAudioSessionOptions","options","iosCategory","iosMode","iosOptions","getDevicePreferredSampleRate","observeAudioInterruptions","enabled","observeVolumeChanges","enableRemoteCommand","name","enableRemoteEvent","callback","subscription","eventEmitter","addListener","console","error","_default","exports","default"],"sourceRoot":"../../../src","sources":["system/AudioManager.ts"],"mappings":";;;;;;AAOA,IAAAA,MAAA,GAAAC,OAAA;AAGA,MAAMC,YAAY,CAAC;EACjBC,iBAAiBA,CAACC,IAAoB,EAAE;IACtCC,yBAAkB,CAACF,iBAAiB,CAACC,IAAI,CAAC;EAC5C;EAEAE,mBAAmBA,CAAA,EAAG;IACpBD,yBAAkB,CAACC,mBAAmB,CAAC,CAAC;EAC1C;EAEAC,sBAAsBA,CAACC,OAAuB,EAAE;IAC9CH,yBAAkB,CAACE,sBAAsB,CACvCC,OAAO,CAACC,WAAW,IAAI,EAAE,EACzBD,OAAO,CAACE,OAAO,IAAI,EAAE,EACrBF,OAAO,CAACG,UAAU,IAAI,EACxB,CAAC;EACH;EAEAC,4BAA4BA,CAAA,EAAW;IACrC,OAAOP,yBAAkB,CAACO,4BAA4B,CAAC,CAAC;EAC1D;EAEAC,yBAAyBA,CAACC,OAAgB,EAAE;IAC1CT,yBAAkB,CAACQ,yBAAyB,CAACC,OAAO,CAAC;EACvD;EAEAC,oBAAoBA,CAACD,OAAgB,EAAE;IACrCT,yBAAkB,CAACU,oBAAoB,CAACD,OAAO,CAAC;EAClD;EAEAE,mBAAmBA,CAAiCC,IAAU,EAAQ;IACpEZ,yBAAkB,CAACW,mBAAmB,CAACC,IAAI,EAAE,IAAI,CAAC;EACpD;EAEAC,iBAAiBA,CACfD,IAAU,EACVE,QAAoC,EACR;IAC5B,IAAIC,YAAY,GAAG,IAAI;IACvB,IAAI,CAACD,QAAQ,EAAE;MACb,OAAO,IAAI;IACb;IACA,QAAQF,IAAI;MACV,KAAK,cAAc;QACjBG,YAAY,GAAGC,mBAAY,CAACC,WAAW,CAAC,gBAAgB,EAAEH,QAAQ,CAAC;QACnE;MAEF,KAAK,aAAa;QAChBC,YAAY,GAAGC,mBAAY,CAACC,WAAW,CAAC,eAAe,EAAEH,QAAQ,CAAC;QAClE;MAEF,KAAK,cAAc;QACjBC,YAAY,GAAGC,mBAAY,CAACC,WAAW,CAAC,gBAAgB,EAAEH,QAAQ,CAAC;QACnE;MAEF;QACEI,OAAO,CAACC,KAAK,CAAC,mCAAmC,EAAEP,IAAI,CAAC;IAC5D;IACA,OAAOG,YAAY;EACrB;AACF;AAAC,IAAAK,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEc,IAAIzB,YAAY,CAAC,CAAC","ignoreList":[]}
|
package/lib/module/api.js
CHANGED
|
@@ -6,7 +6,7 @@ import NativeAudioAPIModule from "./specs/NativeAudioAPIModule.js";
|
|
|
6
6
|
|
|
7
7
|
/* eslint-disable no-var */
|
|
8
8
|
|
|
9
|
-
if (global.createAudioContext == null || global.createOfflineAudioContext == null) {
|
|
9
|
+
if (global.createAudioContext == null || global.createOfflineAudioContext == null || global.createAudioRecorder == null) {
|
|
10
10
|
if (!NativeAudioAPIModule) {
|
|
11
11
|
throw new Error(`Failed to install react-native-audio-api: The native module could not be found.`);
|
|
12
12
|
}
|
|
@@ -26,7 +26,9 @@ export { default as BiquadFilterNode } from "./core/BiquadFilterNode.js";
|
|
|
26
26
|
export { default as GainNode } from "./core/GainNode.js";
|
|
27
27
|
export { default as OscillatorNode } from "./core/OscillatorNode.js";
|
|
28
28
|
export { default as StereoPannerNode } from "./core/StereoPannerNode.js";
|
|
29
|
+
export { default as AudioRecorder } from "./core/AudioRecorder.js";
|
|
29
30
|
export { default as AudioManager } from "./system/index.js";
|
|
31
|
+
export { default as useSystemVolume } from "./hooks/useSytemVolume.js";
|
|
30
32
|
export { OscillatorType, BiquadFilterType, ChannelCountMode, ChannelInterpretation, ContextState, WindowType, PeriodicWaveConstraints } from "./types.js";
|
|
31
33
|
export { IndexSizeError, InvalidAccessError, InvalidStateError, RangeError, NotSupportedError } from "./errors/index.js";
|
|
32
34
|
//# sourceMappingURL=api.js.map
|
package/lib/module/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeAudioAPIModule","global","createAudioContext","createOfflineAudioContext","Error","install","default","AudioBuffer","AudioBufferSourceNode","AudioContext","OfflineAudioContext","AudioDestinationNode","AudioNode","AnalyserNode","AudioParam","AudioScheduledSourceNode","BaseAudioContext","BiquadFilterNode","GainNode","OscillatorNode","StereoPannerNode","AudioManager","OscillatorType","BiquadFilterType","ChannelCountMode","ChannelInterpretation","ContextState","WindowType","PeriodicWaveConstraints","IndexSizeError","InvalidAccessError","InvalidStateError","RangeError","NotSupportedError"],"sourceRoot":"../../src","sources":["api.ts"],"mappings":";;AAAA,OAAOA,oBAAoB,MAAM,iCAA8B;;
|
|
1
|
+
{"version":3,"names":["NativeAudioAPIModule","global","createAudioContext","createOfflineAudioContext","createAudioRecorder","Error","install","default","AudioBuffer","AudioBufferSourceNode","AudioContext","OfflineAudioContext","AudioDestinationNode","AudioNode","AnalyserNode","AudioParam","AudioScheduledSourceNode","BaseAudioContext","BiquadFilterNode","GainNode","OscillatorNode","StereoPannerNode","AudioRecorder","AudioManager","useSystemVolume","OscillatorType","BiquadFilterType","ChannelCountMode","ChannelInterpretation","ContextState","WindowType","PeriodicWaveConstraints","IndexSizeError","InvalidAccessError","InvalidStateError","RangeError","NotSupportedError"],"sourceRoot":"../../src","sources":["api.ts"],"mappings":";;AAAA,OAAOA,oBAAoB,MAAM,iCAA8B;;AAQ/D;;AAYA;;AAEA,IACEC,MAAM,CAACC,kBAAkB,IAAI,IAAI,IACjCD,MAAM,CAACE,yBAAyB,IAAI,IAAI,IACxCF,MAAM,CAACG,mBAAmB,IAAI,IAAI,EAClC;EACA,IAAI,CAACJ,oBAAoB,EAAE;IACzB,MAAM,IAAIK,KAAK,CACb,iFACF,CAAC;EACH;EAEAL,oBAAoB,CAACM,OAAO,CAAC,CAAC;AAChC;AAEA,SAASC,OAAO,IAAIC,WAAW,QAAQ,uBAAoB;AAC3D,SAASD,OAAO,IAAIE,qBAAqB,QAAQ,iCAA8B;AAC/E,SAASF,OAAO,IAAIG,YAAY,QAAQ,wBAAqB;AAC7D,SAASH,OAAO,IAAII,mBAAmB,QAAQ,+BAA4B;AAC3E,SAASJ,OAAO,IAAIK,oBAAoB,QAAQ,gCAA6B;AAC7E,SAASL,OAAO,IAAIM,SAAS,QAAQ,qBAAkB;AACvD,SAASN,OAAO,IAAIO,YAAY,QAAQ,wBAAqB;AAC7D,SAASP,OAAO,IAAIQ,UAAU,QAAQ,sBAAmB;AACzD,SAASR,OAAO,IAAIS,wBAAwB,QAAQ,oCAAiC;AACrF,SAAST,OAAO,IAAIU,gBAAgB,QAAQ,4BAAyB;AACrE,SAASV,OAAO,IAAIW,gBAAgB,QAAQ,4BAAyB;AACrE,SAASX,OAAO,IAAIY,QAAQ,QAAQ,oBAAiB;AACrD,SAASZ,OAAO,IAAIa,cAAc,QAAQ,0BAAuB;AACjE,SAASb,OAAO,IAAIc,gBAAgB,QAAQ,4BAAyB;AACrE,SAASd,OAAO,IAAIe,aAAa,QAAQ,yBAAsB;AAC/D,SAASf,OAAO,IAAIgB,YAAY,QAAQ,mBAAU;AAClD,SAAShB,OAAO,IAAIiB,eAAe,QAAQ,2BAAwB;AAEnE,SACEC,cAAc,EACdC,gBAAgB,EAChBC,gBAAgB,EAChBC,qBAAqB,EACrBC,YAAY,EACZC,UAAU,EACVC,uBAAuB,QAClB,YAAS;AAEhB,SACEC,cAAc,EACdC,kBAAkB,EAClBC,iBAAiB,EACjBC,UAAU,EACVC,iBAAiB,QACZ,mBAAU","ignoreList":[]}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import AudioBuffer from "./AudioBuffer.js";
|
|
4
|
+
export default class AudioRecorder {
|
|
5
|
+
onAudioReadyCallback = null;
|
|
6
|
+
onErrorCallback = null;
|
|
7
|
+
onStatusChangeCallback = null;
|
|
8
|
+
onAudioReadyInternal = (buffer, numFrames, when) => {
|
|
9
|
+
if (this.onAudioReadyCallback) {
|
|
10
|
+
this.onAudioReadyCallback(new AudioBuffer(buffer), numFrames, when);
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
onErrorInternal = error => {
|
|
14
|
+
if (this.onErrorCallback) {
|
|
15
|
+
this.onErrorCallback(error);
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
onStatusChangeInternal = (status, previousStatus) => {
|
|
19
|
+
if (this.onStatusChangeCallback) {
|
|
20
|
+
this.onStatusChangeCallback(status, previousStatus);
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
constructor(options) {
|
|
24
|
+
this.recorder = global.createAudioRecorder(options);
|
|
25
|
+
}
|
|
26
|
+
start() {
|
|
27
|
+
this.recorder.start();
|
|
28
|
+
}
|
|
29
|
+
stop() {
|
|
30
|
+
this.recorder.stop();
|
|
31
|
+
}
|
|
32
|
+
onAudioReady(callback) {
|
|
33
|
+
this.onAudioReadyCallback = callback;
|
|
34
|
+
this.recorder.onAudioReady(this.onAudioReadyInternal);
|
|
35
|
+
}
|
|
36
|
+
onError(callback) {
|
|
37
|
+
this.onErrorCallback = callback;
|
|
38
|
+
this.recorder.onError(this.onErrorInternal);
|
|
39
|
+
}
|
|
40
|
+
onStatusChange(callback) {
|
|
41
|
+
this.onStatusChangeCallback = callback;
|
|
42
|
+
this.recorder.onStatusChange(this.onStatusChangeInternal);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=AudioRecorder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["AudioBuffer","AudioRecorder","onAudioReadyCallback","onErrorCallback","onStatusChangeCallback","onAudioReadyInternal","buffer","numFrames","when","onErrorInternal","error","onStatusChangeInternal","status","previousStatus","constructor","options","recorder","global","createAudioRecorder","start","stop","onAudioReady","callback","onError","onStatusChange"],"sourceRoot":"../../../src","sources":["core/AudioRecorder.ts"],"mappings":";;AAQA,OAAOA,WAAW,MAAM,kBAAe;AAevC,eAAe,MAAMC,aAAa,CAAC;EAEzBC,oBAAoB,GAA8B,IAAI;EACtDC,eAAe,GAAyB,IAAI;EAC5CC,sBAAsB,GAAgC,IAAI;EAE1DC,oBAAoB,GAAwBA,CAClDC,MAAoB,EACpBC,SAAiB,EACjBC,IAAY,KACT;IACH,IAAI,IAAI,CAACN,oBAAoB,EAAE;MAC7B,IAAI,CAACA,oBAAoB,CAAC,IAAIF,WAAW,CAACM,MAAM,CAAC,EAAEC,SAAS,EAAEC,IAAI,CAAC;IACrE;EACF,CAAC;EAEOC,eAAe,GAAoBC,KAAY,IAAK;IAC1D,IAAI,IAAI,CAACP,eAAe,EAAE;MACxB,IAAI,CAACA,eAAe,CAACO,KAAK,CAAC;IAC7B;EACF,CAAC;EAEOC,sBAAsB,GAA0BA,CACtDC,MAA2B,EAC3BC,cAAmC,KAChC;IACH,IAAI,IAAI,CAACT,sBAAsB,EAAE;MAC/B,IAAI,CAACA,sBAAsB,CAACQ,MAAM,EAAEC,cAAc,CAAC;IACrD;EACF,CAAC;EAEDC,WAAWA,CAACC,OAA6B,EAAE;IACzC,IAAI,CAACC,QAAQ,GAAGC,MAAM,CAACC,mBAAmB,CAACH,OAAO,CAAC;EACrD;EAEOI,KAAKA,CAAA,EAAS;IACnB,IAAI,CAACH,QAAQ,CAACG,KAAK,CAAC,CAAC;EACvB;EAEOC,IAAIA,CAAA,EAAS;IAClB,IAAI,CAACJ,QAAQ,CAACI,IAAI,CAAC,CAAC;EACtB;EAEOC,YAAYA,CAACC,QAA4B,EAAQ;IACtD,IAAI,CAACpB,oBAAoB,GAAGoB,QAAQ;IACpC,IAAI,CAACN,QAAQ,CAACK,YAAY,CAAC,IAAI,CAAChB,oBAAoB,CAAC;EACvD;EAEOkB,OAAOA,CAACD,QAAuB,EAAQ;IAC5C,IAAI,CAACnB,eAAe,GAAGmB,QAAQ;IAC/B,IAAI,CAACN,QAAQ,CAACO,OAAO,CAAC,IAAI,CAACd,eAAe,CAAC;EAC7C;EAEOe,cAAcA,CAACF,QAA8B,EAAQ;IAC1D,IAAI,CAAClB,sBAAsB,GAAGkB,QAAQ;IACtC,IAAI,CAACN,QAAQ,CAACQ,cAAc,CAAC,IAAI,CAACb,sBAAsB,CAAC;EAC3D;AACF","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NotSupportedError","Error","constructor","message","name"],"sourceRoot":"../../../src","sources":["errors/NotSupportedError.
|
|
1
|
+
{"version":3,"names":["NotSupportedError","Error","constructor","message","name"],"sourceRoot":"../../../src","sources":["errors/NotSupportedError.ts"],"mappings":";;AAAA,MAAMA,iBAAiB,SAASC,KAAK,CAAC;EACpCC,WAAWA,CAACC,OAAe,EAAE;IAC3B,KAAK,CAACA,OAAO,CAAC;IACd,IAAI,CAACC,IAAI,GAAG,mBAAmB;EACjC;AACF;AAEA,eAAeJ,iBAAiB","ignoreList":[]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useEffect, useState } from 'react';
|
|
4
|
+
import AudioManager from "../system/AudioManager.js";
|
|
5
|
+
export default function useSystemVolume() {
|
|
6
|
+
const [volume, setVolume] = useState(0);
|
|
7
|
+
useEffect(() => {
|
|
8
|
+
AudioManager.observeVolumeChanges(true);
|
|
9
|
+
const listener = AudioManager.enableRemoteEvent('volumeChange', e => {
|
|
10
|
+
setVolume(parseFloat(e.value.toFixed(2)));
|
|
11
|
+
});
|
|
12
|
+
return () => {
|
|
13
|
+
listener?.remove();
|
|
14
|
+
AudioManager.observeVolumeChanges(false);
|
|
15
|
+
};
|
|
16
|
+
}, []);
|
|
17
|
+
return volume;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=useSytemVolume.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useEffect","useState","AudioManager","useSystemVolume","volume","setVolume","observeVolumeChanges","listener","enableRemoteEvent","e","parseFloat","value","toFixed","remove"],"sourceRoot":"../../../src","sources":["hooks/useSytemVolume.ts"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAC3C,OAAOC,YAAY,MAAM,2BAAwB;AAEjD,eAAe,SAASC,eAAeA,CAAA,EAAG;EACxC,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAGJ,QAAQ,CAAC,CAAC,CAAC;EAEvCD,SAAS,CAAC,MAAM;IACdE,YAAY,CAACI,oBAAoB,CAAC,IAAI,CAAC;IACvC,MAAMC,QAAQ,GAAGL,YAAY,CAACM,iBAAiB,CAAC,cAAc,EAAGC,CAAC,IAAK;MACrEJ,SAAS,CAACK,UAAU,CAACD,CAAC,CAACE,KAAK,CAACC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC,CAAC;IACF,OAAO,MAAM;MACXL,QAAQ,EAAEM,MAAM,CAAC,CAAC;MAClBX,YAAY,CAACI,oBAAoB,CAAC,KAAK,CAAC;IAC1C,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,OAAOF,MAAM;AACf","ignoreList":[]}
|
|
@@ -22,7 +22,7 @@ const withForegroundService = (config, {
|
|
|
22
22
|
const SFTypes = androidFSTypes.join('|');
|
|
23
23
|
const serviceElement = {
|
|
24
24
|
$: {
|
|
25
|
-
'android:name': 'system.MediaNotificationManager$NotificationService',
|
|
25
|
+
'android:name': 'com.swmansion.audioapi.system.MediaNotificationManager$NotificationService',
|
|
26
26
|
'android:stopWithTask': 'true',
|
|
27
27
|
'android:foregroundServiceType': SFTypes
|
|
28
28
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["AndroidConfig","createRunOncePlugin","withInfoPlist","withAndroidManifest","pkg","require","withBackgroundAudio","config","iosConfig","modResults","UIBackgroundModes","Array","from","Set","withAndroidPermissions","androidFSPermissions","Permissions","withPermissions","withForegroundService","androidFSTypes","mod","manifest","mainApplication","Manifest","getMainApplicationOrThrow","SFTypes","join","serviceElement","$","intentFilter","service","push","withAudioAPI","iosBackgroundMode","androidForegroundService","name","version"],"sourceRoot":"../../../src","sources":["plugin/withAudioAPI.ts"],"mappings":";;AAAA,SACEA,aAAa,EACbC,mBAAmB,EAEnBC,aAAa,EACbC,mBAAmB,QACd,sBAAsB;AAE7B,MAAMC,GAAG,GAAGC,OAAO,CAAC,qCAAqC,CAAC;AAE1D,MAAMC,mBAAiC,GAAIC,MAAM,IAAK;EACpD,OAAOL,aAAa,CAACK,MAAM,EAAGC,SAAS,IAAK;IAC1CA,SAAS,CAACC,UAAU,CAACC,iBAAiB,GAAG,CACvC,GAAGC,KAAK,CAACC,IAAI,CACX,IAAIC,GAAG,CAAC,CAAC,IAAIL,SAAS,CAACC,UAAU,CAACC,iBAAiB,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,CACtE,CAAC,CACF;IAED,OAAOF,SAAS;EAClB,CAAC,CAAC;AACJ,CAAC;AAED,MAAMM,sBAEJ,GAAGA,CAACP,MAAM,EAAE;EAAEQ;AAAqB,CAAC,KAAK;EACzC,OAAOf,aAAa,CAACgB,WAAW,CAACC,eAAe,CAC9CV,MAAM,EACNQ,oBACF,CAAC;AACH,CAAC;AAED,MAAMG,qBAEJ,GAAGA,CAACX,MAAM,EAAE;EAAEY;AAAe,CAAC,KAAK;EACnC,OAAOhB,mBAAmB,CAACI,MAAM,EAAGa,GAAG,IAAK;IAC1C,MAAMC,QAAQ,GAAGD,GAAG,CAACX,UAAU;IAC/B,MAAMa,eAAe,GACnBtB,aAAa,CAACuB,QAAQ,CAACC,yBAAyB,CAACH,QAAQ,CAAC;IAE5D,MAAMI,OAAO,GAAGN,cAAc,CAACO,IAAI,CAAC,GAAG,CAAC;IAExC,MAAMC,cAAc,GAAG;MACrBC,CAAC,EAAE;QACD,cAAc,
|
|
1
|
+
{"version":3,"names":["AndroidConfig","createRunOncePlugin","withInfoPlist","withAndroidManifest","pkg","require","withBackgroundAudio","config","iosConfig","modResults","UIBackgroundModes","Array","from","Set","withAndroidPermissions","androidFSPermissions","Permissions","withPermissions","withForegroundService","androidFSTypes","mod","manifest","mainApplication","Manifest","getMainApplicationOrThrow","SFTypes","join","serviceElement","$","intentFilter","service","push","withAudioAPI","iosBackgroundMode","androidForegroundService","name","version"],"sourceRoot":"../../../src","sources":["plugin/withAudioAPI.ts"],"mappings":";;AAAA,SACEA,aAAa,EACbC,mBAAmB,EAEnBC,aAAa,EACbC,mBAAmB,QACd,sBAAsB;AAE7B,MAAMC,GAAG,GAAGC,OAAO,CAAC,qCAAqC,CAAC;AAE1D,MAAMC,mBAAiC,GAAIC,MAAM,IAAK;EACpD,OAAOL,aAAa,CAACK,MAAM,EAAGC,SAAS,IAAK;IAC1CA,SAAS,CAACC,UAAU,CAACC,iBAAiB,GAAG,CACvC,GAAGC,KAAK,CAACC,IAAI,CACX,IAAIC,GAAG,CAAC,CAAC,IAAIL,SAAS,CAACC,UAAU,CAACC,iBAAiB,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,CACtE,CAAC,CACF;IAED,OAAOF,SAAS;EAClB,CAAC,CAAC;AACJ,CAAC;AAED,MAAMM,sBAEJ,GAAGA,CAACP,MAAM,EAAE;EAAEQ;AAAqB,CAAC,KAAK;EACzC,OAAOf,aAAa,CAACgB,WAAW,CAACC,eAAe,CAC9CV,MAAM,EACNQ,oBACF,CAAC;AACH,CAAC;AAED,MAAMG,qBAEJ,GAAGA,CAACX,MAAM,EAAE;EAAEY;AAAe,CAAC,KAAK;EACnC,OAAOhB,mBAAmB,CAACI,MAAM,EAAGa,GAAG,IAAK;IAC1C,MAAMC,QAAQ,GAAGD,GAAG,CAACX,UAAU;IAC/B,MAAMa,eAAe,GACnBtB,aAAa,CAACuB,QAAQ,CAACC,yBAAyB,CAACH,QAAQ,CAAC;IAE5D,MAAMI,OAAO,GAAGN,cAAc,CAACO,IAAI,CAAC,GAAG,CAAC;IAExC,MAAMC,cAAc,GAAG;MACrBC,CAAC,EAAE;QACD,cAAc,EACZ,4EAA4E;QAC9E,sBAAsB,EAAE,MAAM;QAC9B,+BAA+B,EAAEH;MACnC,CAAC;MACDI,YAAY,EAAE;IAChB,CAAC;IAED,IAAI,CAACP,eAAe,CAACQ,OAAO,EAAE;MAC5BR,eAAe,CAACQ,OAAO,GAAG,EAAE;IAC9B;IAEAR,eAAe,CAACQ,OAAO,CAACC,IAAI,CAACJ,cAAc,CAAC;IAE5C,OAAOP,GAAG;EACZ,CAAC,CAAC;AACJ,CAAC;AAED,MAAMY,YAKJ,GAAGA,CACHzB,MAAM,EACN;EACE0B,iBAAiB,GAAG,IAAI;EACxBC,wBAAwB,GAAG,IAAI;EAC/BnB,oBAAoB,GAAG,EAAE;EACzBI,cAAc,GAAG;AACnB,CAAC,KACE;EACH,IAAIc,iBAAiB,EAAE;IACrB1B,MAAM,GAAGD,mBAAmB,CAACC,MAAM,CAAC;EACtC;EACA,IAAI2B,wBAAwB,EAAE;IAC5B3B,MAAM,GAAGO,sBAAsB,CAACP,MAAM,EAAE;MACtCQ;IACF,CAAC,CAAC;IACFR,MAAM,GAAGW,qBAAqB,CAACX,MAAM,EAAE;MACrCY;IACF,CAAC,CAAC;EACJ;EAEA,OAAOZ,MAAM;AACf,CAAC;AAED,eAAeN,mBAAmB,CAAC+B,YAAY,EAAE5B,GAAG,CAAC+B,IAAI,EAAE/B,GAAG,CAACgC,OAAO,CAAC","ignoreList":[]}
|
|
@@ -16,14 +16,17 @@ const AudioManagerModule = {
|
|
|
16
16
|
enableRemoteCommand(name, enabled) {
|
|
17
17
|
NativeAudioManagerModule.enableRemoteCommand(name, enabled);
|
|
18
18
|
},
|
|
19
|
-
setAudioSessionOptions(category, mode, options
|
|
20
|
-
NativeAudioManagerModule.setAudioSessionOptions(category, mode, options
|
|
19
|
+
setAudioSessionOptions(category, mode, options) {
|
|
20
|
+
NativeAudioManagerModule.setAudioSessionOptions(category, mode, options);
|
|
21
21
|
},
|
|
22
22
|
getDevicePreferredSampleRate() {
|
|
23
23
|
return NativeAudioManagerModule.getDevicePreferredSampleRate();
|
|
24
24
|
},
|
|
25
25
|
observeAudioInterruptions(enabled) {
|
|
26
26
|
NativeAudioManagerModule.observeAudioInterruptions(enabled);
|
|
27
|
+
},
|
|
28
|
+
observeVolumeChanges(enabled) {
|
|
29
|
+
NativeAudioManagerModule.observeVolumeChanges(enabled);
|
|
27
30
|
}
|
|
28
31
|
};
|
|
29
32
|
export { eventEmitter, AudioManagerModule };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeModules","NativeEventEmitter","Platform","NativeAudioManagerModule","AudioManagerModule","eventEmitter","OS","Error","setLockScreenInfo","info","resetLockScreenInfo","enableRemoteCommand","name","enabled","setAudioSessionOptions","category","mode","options","
|
|
1
|
+
{"version":3,"names":["NativeModules","NativeEventEmitter","Platform","NativeAudioManagerModule","AudioManagerModule","eventEmitter","OS","Error","setLockScreenInfo","info","resetLockScreenInfo","enableRemoteCommand","name","enabled","setAudioSessionOptions","category","mode","options","getDevicePreferredSampleRate","observeAudioInterruptions","observeVolumeChanges"],"sourceRoot":"../../../src","sources":["specs/NativeAudioManagerModule.ts"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,kBAAkB,EAAEC,QAAQ,QAAQ,cAAc;AAE1E,MAAMC,wBAAwB,GAAGH,aAAa,CAACI,kBAAkB;AACjE,MAAMC,YAAY,GAChBH,QAAQ,CAACI,EAAE,KAAK,SAAS,GACrB,IAAIL,kBAAkB,CAAC,CAAC,GACxB,IAAIA,kBAAkB,CAACD,aAAa,CAACI,kBAAkB,CAAC;AAE9D,IAAI,CAACD,wBAAwB,IAAI,CAACE,YAAY,EAAE;EAC9C,MAAM,IAAIE,KAAK,CACb,iFACF,CAAC;AACH;AAEA,MAAMH,kBAAkB,GAAG;EACzBI,iBAAiBA,CAACC,IAEjB,EAAQ;IACPN,wBAAwB,CAACK,iBAAiB,CAACC,IAAI,CAAC;EAClD,CAAC;EACDC,mBAAmBA,CAAA,EAAS;IAC1BP,wBAAwB,CAACO,mBAAmB,CAAC,CAAC;EAChD,CAAC;EACDC,mBAAmBA,CAACC,IAAY,EAAEC,OAAgB,EAAQ;IACxDV,wBAAwB,CAACQ,mBAAmB,CAACC,IAAI,EAAEC,OAAO,CAAC;EAC7D,CAAC;EACDC,sBAAsBA,CACpBC,QAAgB,EAChBC,IAAY,EACZC,OAAsB,EAChB;IACNd,wBAAwB,CAACW,sBAAsB,CAACC,QAAQ,EAAEC,IAAI,EAAEC,OAAO,CAAC;EAC1E,CAAC;EACDC,4BAA4BA,CAAA,EAAW;IACrC,OAAOf,wBAAwB,CAACe,4BAA4B,CAAC,CAAC;EAChE,CAAC;EACDC,yBAAyBA,CAACN,OAAgB,EAAQ;IAChDV,wBAAwB,CAACgB,yBAAyB,CAACN,OAAO,CAAC;EAC7D,CAAC;EACDO,oBAAoBA,CAACP,OAAgB,EAAQ;IAC3CV,wBAAwB,CAACiB,oBAAoB,CAACP,OAAO,CAAC;EACxD;AACF,CAAC;AAED,SAASR,YAAY,EAAED,kBAAkB","ignoreList":[]}
|
|
@@ -9,7 +9,7 @@ class AudioManager {
|
|
|
9
9
|
AudioManagerModule.resetLockScreenInfo();
|
|
10
10
|
}
|
|
11
11
|
setAudioSessionOptions(options) {
|
|
12
|
-
AudioManagerModule.setAudioSessionOptions(options.iosCategory ?? '', options.iosMode ?? '', options.iosOptions ?? []
|
|
12
|
+
AudioManagerModule.setAudioSessionOptions(options.iosCategory ?? '', options.iosMode ?? '', options.iosOptions ?? []);
|
|
13
13
|
}
|
|
14
14
|
getDevicePreferredSampleRate() {
|
|
15
15
|
return AudioManagerModule.getDevicePreferredSampleRate();
|
|
@@ -17,56 +17,29 @@ class AudioManager {
|
|
|
17
17
|
observeAudioInterruptions(enabled) {
|
|
18
18
|
AudioManagerModule.observeAudioInterruptions(enabled);
|
|
19
19
|
}
|
|
20
|
-
|
|
21
|
-
AudioManagerModule.
|
|
20
|
+
observeVolumeChanges(enabled) {
|
|
21
|
+
AudioManagerModule.observeVolumeChanges(enabled);
|
|
22
|
+
}
|
|
23
|
+
enableRemoteCommand(name) {
|
|
24
|
+
AudioManagerModule.enableRemoteCommand(name, true);
|
|
25
|
+
}
|
|
26
|
+
enableRemoteEvent(name, callback) {
|
|
22
27
|
let subscription = null;
|
|
23
|
-
if (
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
subscription = eventEmitter.addListener('onRemoteChangePlaybackRate', callback);
|
|
39
|
-
break;
|
|
40
|
-
case 'nextTrack':
|
|
41
|
-
subscription = eventEmitter.addListener('onRemoteNextTrack', callback);
|
|
42
|
-
break;
|
|
43
|
-
case 'previousTrack':
|
|
44
|
-
subscription = eventEmitter.addListener('onRemotePreviousTrack', callback);
|
|
45
|
-
break;
|
|
46
|
-
case 'skipForward':
|
|
47
|
-
subscription = eventEmitter.addListener('onRemoteSkipForward', callback);
|
|
48
|
-
break;
|
|
49
|
-
case 'skipBackward':
|
|
50
|
-
subscription = eventEmitter.addListener('onRemoteSkipBackward', callback);
|
|
51
|
-
break;
|
|
52
|
-
case 'seekForward':
|
|
53
|
-
subscription = eventEmitter.addListener('onRemoteSeekForward', callback);
|
|
54
|
-
break;
|
|
55
|
-
case 'seekBackward':
|
|
56
|
-
subscription = eventEmitter.addListener('onRemoteSeekBackward', callback);
|
|
57
|
-
break;
|
|
58
|
-
case 'changePlaybackPosition':
|
|
59
|
-
subscription = eventEmitter.addListener('onRemoteChangePlaybackPosition', callback);
|
|
60
|
-
break;
|
|
61
|
-
case 'interruption':
|
|
62
|
-
subscription = eventEmitter.addListener('onInterruption', callback);
|
|
63
|
-
break;
|
|
64
|
-
case 'routeChange':
|
|
65
|
-
subscription = eventEmitter.addListener('onRouteChange', callback);
|
|
66
|
-
break;
|
|
67
|
-
default:
|
|
68
|
-
console.error('Unsupported RemoteControl action:', name);
|
|
69
|
-
}
|
|
28
|
+
if (!callback) {
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
switch (name) {
|
|
32
|
+
case 'interruption':
|
|
33
|
+
subscription = eventEmitter.addListener('onInterruption', callback);
|
|
34
|
+
break;
|
|
35
|
+
case 'routeChange':
|
|
36
|
+
subscription = eventEmitter.addListener('onRouteChange', callback);
|
|
37
|
+
break;
|
|
38
|
+
case 'volumeChange':
|
|
39
|
+
subscription = eventEmitter.addListener('onVolumeChange', callback);
|
|
40
|
+
break;
|
|
41
|
+
default:
|
|
42
|
+
console.error('Unsupported RemoteControl action:', name);
|
|
70
43
|
}
|
|
71
44
|
return subscription;
|
|
72
45
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["AudioManagerModule","eventEmitter","AudioManager","setLockScreenInfo","info","resetLockScreenInfo","setAudioSessionOptions","options","iosCategory","iosMode","iosOptions","
|
|
1
|
+
{"version":3,"names":["AudioManagerModule","eventEmitter","AudioManager","setLockScreenInfo","info","resetLockScreenInfo","setAudioSessionOptions","options","iosCategory","iosMode","iosOptions","getDevicePreferredSampleRate","observeAudioInterruptions","enabled","observeVolumeChanges","enableRemoteCommand","name","enableRemoteEvent","callback","subscription","addListener","console","error"],"sourceRoot":"../../../src","sources":["system/AudioManager.ts"],"mappings":";;AAOA,SAASA,kBAAkB,EAAEC,YAAY,QAAQ,mBAAU;AAG3D,MAAMC,YAAY,CAAC;EACjBC,iBAAiBA,CAACC,IAAoB,EAAE;IACtCJ,kBAAkB,CAACG,iBAAiB,CAACC,IAAI,CAAC;EAC5C;EAEAC,mBAAmBA,CAAA,EAAG;IACpBL,kBAAkB,CAACK,mBAAmB,CAAC,CAAC;EAC1C;EAEAC,sBAAsBA,CAACC,OAAuB,EAAE;IAC9CP,kBAAkB,CAACM,sBAAsB,CACvCC,OAAO,CAACC,WAAW,IAAI,EAAE,EACzBD,OAAO,CAACE,OAAO,IAAI,EAAE,EACrBF,OAAO,CAACG,UAAU,IAAI,EACxB,CAAC;EACH;EAEAC,4BAA4BA,CAAA,EAAW;IACrC,OAAOX,kBAAkB,CAACW,4BAA4B,CAAC,CAAC;EAC1D;EAEAC,yBAAyBA,CAACC,OAAgB,EAAE;IAC1Cb,kBAAkB,CAACY,yBAAyB,CAACC,OAAO,CAAC;EACvD;EAEAC,oBAAoBA,CAACD,OAAgB,EAAE;IACrCb,kBAAkB,CAACc,oBAAoB,CAACD,OAAO,CAAC;EAClD;EAEAE,mBAAmBA,CAAiCC,IAAU,EAAQ;IACpEhB,kBAAkB,CAACe,mBAAmB,CAACC,IAAI,EAAE,IAAI,CAAC;EACpD;EAEAC,iBAAiBA,CACfD,IAAU,EACVE,QAAoC,EACR;IAC5B,IAAIC,YAAY,GAAG,IAAI;IACvB,IAAI,CAACD,QAAQ,EAAE;MACb,OAAO,IAAI;IACb;IACA,QAAQF,IAAI;MACV,KAAK,cAAc;QACjBG,YAAY,GAAGlB,YAAY,CAACmB,WAAW,CAAC,gBAAgB,EAAEF,QAAQ,CAAC;QACnE;MAEF,KAAK,aAAa;QAChBC,YAAY,GAAGlB,YAAY,CAACmB,WAAW,CAAC,eAAe,EAAEF,QAAQ,CAAC;QAClE;MAEF,KAAK,cAAc;QACjBC,YAAY,GAAGlB,YAAY,CAACmB,WAAW,CAAC,gBAAgB,EAAEF,QAAQ,CAAC;QACnE;MAEF;QACEG,OAAO,CAACC,KAAK,CAAC,mCAAmC,EAAEN,IAAI,CAAC;IAC5D;IACA,OAAOG,YAAY;EACrB;AACF;AAEA,eAAe,IAAIjB,YAAY,CAAC,CAAC","ignoreList":[]}
|
package/lib/typescript/api.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { AudioRecorderOptions } from './types';
|
|
2
|
+
import type { IAudioContext, IAudioRecorder, IOfflineAudioContext } from './interfaces';
|
|
2
3
|
declare global {
|
|
3
4
|
var createAudioContext: (sampleRate?: number) => IAudioContext;
|
|
4
5
|
var createOfflineAudioContext: (numberOfChannels: number, length: number, sampleRate: number) => IOfflineAudioContext;
|
|
6
|
+
var createAudioRecorder: (options: AudioRecorderOptions) => IAudioRecorder;
|
|
5
7
|
}
|
|
6
8
|
export { default as AudioBuffer } from './core/AudioBuffer';
|
|
7
9
|
export { default as AudioBufferSourceNode } from './core/AudioBufferSourceNode';
|
|
@@ -17,7 +19,9 @@ export { default as BiquadFilterNode } from './core/BiquadFilterNode';
|
|
|
17
19
|
export { default as GainNode } from './core/GainNode';
|
|
18
20
|
export { default as OscillatorNode } from './core/OscillatorNode';
|
|
19
21
|
export { default as StereoPannerNode } from './core/StereoPannerNode';
|
|
22
|
+
export { default as AudioRecorder } from './core/AudioRecorder';
|
|
20
23
|
export { default as AudioManager } from './system';
|
|
24
|
+
export { default as useSystemVolume } from './hooks/useSytemVolume';
|
|
21
25
|
export { OscillatorType, BiquadFilterType, ChannelCountMode, ChannelInterpretation, ContextState, WindowType, PeriodicWaveConstraints, } from './types';
|
|
22
26
|
export { IndexSizeError, InvalidAccessError, InvalidStateError, RangeError, NotSupportedError, } from './errors';
|
|
23
27
|
//# sourceMappingURL=api.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,oBAAoB,EACrB,MAAM,cAAc,CAAC;AAGtB,OAAO,CAAC,MAAM,CAAC;IACb,IAAI,kBAAkB,EAAE,CAAC,UAAU,CAAC,EAAE,MAAM,KAAK,aAAa,CAAC;IAC/D,IAAI,yBAAyB,EAAE,CAC7B,gBAAgB,EAAE,MAAM,EACxB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,KACf,oBAAoB,CAAC;IAE1B,IAAI,mBAAmB,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,cAAc,CAAC;CAC5E;AAkBD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAChF,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AACtF,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEpE,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,qBAAqB,EACrB,YAAY,EACZ,UAAU,EACV,uBAAuB,GACxB,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,UAAU,EACV,iBAAiB,GAClB,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { IAudioRecorder } from '../interfaces';
|
|
2
|
+
import { AudioRecorderStatus, AudioRecorderOptions } from '../types';
|
|
3
|
+
import AudioBuffer from './AudioBuffer';
|
|
4
|
+
export type AudioReadyCallback = (buffer: AudioBuffer, numFrames: number, when: number) => void;
|
|
5
|
+
export type ErrorCallback = (error: Error) => void;
|
|
6
|
+
export type StatusChangeCallback = (status: AudioRecorderStatus, previousStatus: AudioRecorderStatus) => void;
|
|
7
|
+
export default class AudioRecorder {
|
|
8
|
+
protected readonly recorder: IAudioRecorder;
|
|
9
|
+
private onAudioReadyCallback;
|
|
10
|
+
private onErrorCallback;
|
|
11
|
+
private onStatusChangeCallback;
|
|
12
|
+
private onAudioReadyInternal;
|
|
13
|
+
private onErrorInternal;
|
|
14
|
+
private onStatusChangeInternal;
|
|
15
|
+
constructor(options: AudioRecorderOptions);
|
|
16
|
+
start(): void;
|
|
17
|
+
stop(): void;
|
|
18
|
+
onAudioReady(callback: AudioReadyCallback): void;
|
|
19
|
+
onError(callback: ErrorCallback): void;
|
|
20
|
+
onStatusChange(callback: StatusChangeCallback): void;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=AudioRecorder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AudioRecorder.d.ts","sourceRoot":"","sources":["../../../src/core/AudioRecorder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EAKf,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AACrE,OAAO,WAAW,MAAM,eAAe,CAAC;AAExC,MAAM,MAAM,kBAAkB,GAAG,CAC/B,MAAM,EAAE,WAAW,EACnB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,KACT,IAAI,CAAC;AAEV,MAAM,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;AAEnD,MAAM,MAAM,oBAAoB,GAAG,CACjC,MAAM,EAAE,mBAAmB,EAC3B,cAAc,EAAE,mBAAmB,KAChC,IAAI,CAAC;AAEV,MAAM,CAAC,OAAO,OAAO,aAAa;IAChC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAC5C,OAAO,CAAC,oBAAoB,CAAmC;IAC/D,OAAO,CAAC,eAAe,CAA8B;IACrD,OAAO,CAAC,sBAAsB,CAAqC;IAEnE,OAAO,CAAC,oBAAoB,CAQ1B;IAEF,OAAO,CAAC,eAAe,CAIrB;IAEF,OAAO,CAAC,sBAAsB,CAO5B;gBAEU,OAAO,EAAE,oBAAoB;IAIlC,KAAK,IAAI,IAAI;IAIb,IAAI,IAAI,IAAI;IAIZ,YAAY,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI;IAKhD,OAAO,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI;IAKtC,cAAc,CAAC,QAAQ,EAAE,oBAAoB,GAAG,IAAI;CAI5D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotSupportedError.d.ts","sourceRoot":"","sources":["../../../src/errors/NotSupportedError.
|
|
1
|
+
{"version":3,"file":"NotSupportedError.d.ts","sourceRoot":"","sources":["../../../src/errors/NotSupportedError.ts"],"names":[],"mappings":"AAAA,cAAM,iBAAkB,SAAQ,KAAK;gBACvB,OAAO,EAAE,MAAM;CAI5B;AAED,eAAe,iBAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSytemVolume.d.ts","sourceRoot":"","sources":["../../../src/hooks/useSytemVolume.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,OAAO,UAAU,eAAe,WAetC"}
|
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export interface AudioAPIInstaller {
|
|
3
|
-
createAudioContext: (sampleRate?: number) => IAudioContext;
|
|
4
|
-
createOfflineAudioContext: (numberOfChannels: number, length: number, sampleRate: number) => IAudioContext;
|
|
5
|
-
}
|
|
1
|
+
import { WindowType, ContextState, OscillatorType, BiquadFilterType, ChannelCountMode, AudioRecorderStatus, ChannelInterpretation } from './types';
|
|
6
2
|
export interface IBaseAudioContext {
|
|
7
3
|
readonly destination: IAudioDestinationNode;
|
|
8
4
|
readonly state: ContextState;
|
|
@@ -111,4 +107,14 @@ export interface IAnalyserNode extends IAudioNode {
|
|
|
111
107
|
getFloatTimeDomainData: (array: Float32Array) => void;
|
|
112
108
|
getByteTimeDomainData: (array: Uint8Array) => void;
|
|
113
109
|
}
|
|
110
|
+
export type IAudioReadyCallback = (buffer: IAudioBuffer, numFrames: number, when: number) => void;
|
|
111
|
+
export type IErrorCallback = (error: Error) => void;
|
|
112
|
+
export type IStatusChangeCallback = (status: AudioRecorderStatus, previousStatus: AudioRecorderStatus) => void;
|
|
113
|
+
export interface IAudioRecorder {
|
|
114
|
+
start: () => void;
|
|
115
|
+
stop: () => void;
|
|
116
|
+
onAudioReady: (callback: IAudioReadyCallback) => void;
|
|
117
|
+
onError: (callback: IErrorCallback) => void;
|
|
118
|
+
onStatusChange: (callback: IStatusChangeCallback) => void;
|
|
119
|
+
}
|
|
114
120
|
//# sourceMappingURL=interfaces.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withAudioAPI.d.ts","sourceRoot":"","sources":["../../../src/plugin/withAudioAPI.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,YAAY,EAGb,MAAM,sBAAsB,CAAC;;;;;;;
|
|
1
|
+
{"version":3,"file":"withAudioAPI.d.ts","sourceRoot":"","sources":["../../../src/plugin/withAudioAPI.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,YAAY,EAGb,MAAM,sBAAsB,CAAC;;;;;;;AAoF9B,wBAAwE"}
|
|
@@ -6,9 +6,10 @@ declare const AudioManagerModule: {
|
|
|
6
6
|
}): void;
|
|
7
7
|
resetLockScreenInfo(): void;
|
|
8
8
|
enableRemoteCommand(name: string, enabled: boolean): void;
|
|
9
|
-
setAudioSessionOptions(category: string, mode: string, options: Array<string
|
|
9
|
+
setAudioSessionOptions(category: string, mode: string, options: Array<string>): void;
|
|
10
10
|
getDevicePreferredSampleRate(): number;
|
|
11
11
|
observeAudioInterruptions(enabled: boolean): void;
|
|
12
|
+
observeVolumeChanges(enabled: boolean): void;
|
|
12
13
|
};
|
|
13
14
|
export { eventEmitter, AudioManagerModule };
|
|
14
15
|
//# sourceMappingURL=NativeAudioManagerModule.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NativeAudioManagerModule.d.ts","sourceRoot":"","sources":["../../../src/specs/NativeAudioManagerModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,kBAAkB,EAAY,MAAM,cAAc,CAAC;AAG3E,QAAA,MAAM,YAAY,oBAG4C,CAAC;AAQ/D,QAAA,MAAM,kBAAkB;;;QAGlB,IAAI;2BAGe,IAAI;8BAGD,MAAM,WAAW,OAAO,GAAG,IAAI;qCAI7C,MAAM,QACV,MAAM,WACH,MAAM,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"NativeAudioManagerModule.d.ts","sourceRoot":"","sources":["../../../src/specs/NativeAudioManagerModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,kBAAkB,EAAY,MAAM,cAAc,CAAC;AAG3E,QAAA,MAAM,YAAY,oBAG4C,CAAC;AAQ/D,QAAA,MAAM,kBAAkB;;;QAGlB,IAAI;2BAGe,IAAI;8BAGD,MAAM,WAAW,OAAO,GAAG,IAAI;qCAI7C,MAAM,QACV,MAAM,WACH,MAAM,MAAM,CAAC,GACrB,IAAI;oCAGyB,MAAM;uCAGH,OAAO,GAAG,IAAI;kCAGnB,OAAO,GAAG,IAAI;CAG7C,CAAC;AAEF,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,CAAC"}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import { SessionOptions, LockScreenInfo,
|
|
1
|
+
import { SessionOptions, LockScreenInfo, RemoteEventName, RemoteEventCallback, RemoteCommandName } from './types';
|
|
2
2
|
import { EmitterSubscription } from 'react-native';
|
|
3
|
-
type AudioManagerEventType = RemoteControlEmptyEventType | RemoteControlEventType | OnInterruptionEventType | OnRouteChangeEventType;
|
|
4
3
|
declare class AudioManager {
|
|
5
4
|
setLockScreenInfo(info: LockScreenInfo): void;
|
|
6
5
|
resetLockScreenInfo(): void;
|
|
7
6
|
setAudioSessionOptions(options: SessionOptions): void;
|
|
8
7
|
getDevicePreferredSampleRate(): number;
|
|
9
8
|
observeAudioInterruptions(enabled: boolean): void;
|
|
10
|
-
|
|
9
|
+
observeVolumeChanges(enabled: boolean): void;
|
|
10
|
+
enableRemoteCommand<Name extends RemoteCommandName>(name: Name): void;
|
|
11
|
+
enableRemoteEvent<Name extends RemoteEventName>(name: Name, callback?: RemoteEventCallback<Name>): EmitterSubscription | null;
|
|
11
12
|
}
|
|
12
13
|
declare const _default: AudioManager;
|
|
13
14
|
export default _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AudioManager.d.ts","sourceRoot":"","sources":["../../../src/system/AudioManager.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,cAAc,EACd,
|
|
1
|
+
{"version":3,"file":"AudioManager.d.ts","sourceRoot":"","sources":["../../../src/system/AudioManager.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEnD,cAAM,YAAY;IAChB,iBAAiB,CAAC,IAAI,EAAE,cAAc;IAItC,mBAAmB;IAInB,sBAAsB,CAAC,OAAO,EAAE,cAAc;IAQ9C,4BAA4B,IAAI,MAAM;IAItC,yBAAyB,CAAC,OAAO,EAAE,OAAO;IAI1C,oBAAoB,CAAC,OAAO,EAAE,OAAO;IAIrC,mBAAmB,CAAC,IAAI,SAAS,iBAAiB,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI;IAIrE,iBAAiB,CAAC,IAAI,SAAS,eAAe,EAC5C,IAAI,EAAE,IAAI,EACV,QAAQ,CAAC,EAAE,mBAAmB,CAAC,IAAI,CAAC,GACnC,mBAAmB,GAAG,IAAI;CAuB9B;;AAED,wBAAkC"}
|
|
@@ -5,7 +5,6 @@ export interface SessionOptions {
|
|
|
5
5
|
iosMode?: IOSMode;
|
|
6
6
|
iosOptions?: IOSOption[];
|
|
7
7
|
iosCategory?: IOSCategory;
|
|
8
|
-
active?: boolean;
|
|
9
8
|
}
|
|
10
9
|
export type MediaState = 'state_playing' | 'state_paused';
|
|
11
10
|
interface BaseLockScreenInfo {
|
|
@@ -22,19 +21,39 @@ export interface LockScreenInfo extends BaseLockScreenInfo {
|
|
|
22
21
|
speed?: number;
|
|
23
22
|
elapsedTime?: number;
|
|
24
23
|
}
|
|
25
|
-
|
|
26
|
-
export type InterruptionEventName = 'interruption' | 'routeChange';
|
|
27
|
-
export interface RemoteControlEmptyEventType {
|
|
24
|
+
interface RemoteEmptyType {
|
|
28
25
|
}
|
|
29
|
-
|
|
26
|
+
interface RemoteControlEventType {
|
|
30
27
|
value: number;
|
|
31
28
|
}
|
|
32
|
-
|
|
29
|
+
interface OnInterruptionEventType {
|
|
33
30
|
type: 'ended' | 'began';
|
|
34
31
|
shouldResume: boolean;
|
|
35
32
|
}
|
|
36
|
-
|
|
33
|
+
interface OnRouteChangeEventType {
|
|
37
34
|
reason: string;
|
|
38
35
|
}
|
|
36
|
+
interface RemoteCommands {
|
|
37
|
+
play: RemoteEmptyType;
|
|
38
|
+
pause: RemoteEmptyType;
|
|
39
|
+
stop: RemoteEmptyType;
|
|
40
|
+
togglePlayPause: RemoteEmptyType;
|
|
41
|
+
changePlaybackRate: RemoteEmptyType;
|
|
42
|
+
nextTrack: RemoteEmptyType;
|
|
43
|
+
previousTrack: RemoteEmptyType;
|
|
44
|
+
skipForward: RemoteEmptyType;
|
|
45
|
+
skipBackward: RemoteEmptyType;
|
|
46
|
+
seekForward: RemoteEmptyType;
|
|
47
|
+
seekBackward: RemoteEmptyType;
|
|
48
|
+
changePlaybackPosition: RemoteEmptyType;
|
|
49
|
+
}
|
|
50
|
+
interface RemoteEvents {
|
|
51
|
+
volumeChange: RemoteControlEventType;
|
|
52
|
+
interruption: OnInterruptionEventType;
|
|
53
|
+
routeChange: OnRouteChangeEventType;
|
|
54
|
+
}
|
|
55
|
+
export type RemoteCommandName = keyof RemoteCommands;
|
|
56
|
+
export type RemoteEventName = keyof RemoteEvents;
|
|
57
|
+
export type RemoteEventCallback<Name extends RemoteEventName> = (event: RemoteEvents[Name]) => void;
|
|
39
58
|
export {};
|
|
40
59
|
//# sourceMappingURL=types.d.ts.map
|