react-native-audio-api 0.4.10 → 0.4.11
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/android/build.gradle +2 -0
- package/android/src/main/cpp/{core/AudioAPIInstaller.cpp → AudioAPIModule.cpp} +12 -11
- package/android/src/main/cpp/{core/AudioAPIInstaller.h → AudioAPIModule.h} +9 -11
- package/android/src/main/cpp/OnLoad.cpp +2 -2
- package/android/src/main/cpp/core/AudioDecoder.cpp +5 -5
- package/android/src/main/cpp/core/AudioPlayer.cpp +12 -0
- package/android/src/main/cpp/core/AudioPlayer.h +2 -0
- package/android/src/main/java/com/swmansion/audioapi/{module/AudioAPIInstaller.kt → AudioAPIModule.kt} +22 -10
- package/android/src/main/java/com/swmansion/audioapi/AudioAPIPackage.kt +31 -6
- package/android/src/oldarch/NativeAudioAPIModuleSpec.java +37 -0
- package/common/cpp/HostObjects/AudioContextHostObject.h +34 -1
- package/common/cpp/core/AnalyserNode.cpp +2 -2
- package/common/cpp/core/AnalyserNode.h +1 -1
- package/common/cpp/core/AudioBuffer.cpp +4 -2
- package/common/cpp/core/AudioBuffer.h +1 -1
- package/common/cpp/core/AudioBufferSourceNode.cpp +3 -3
- package/common/cpp/core/AudioBufferSourceNode.h +3 -3
- package/common/cpp/core/AudioContext.cpp +10 -0
- package/common/cpp/core/AudioContext.h +2 -0
- package/common/cpp/core/AudioDecoder.h +2 -1
- package/common/cpp/core/AudioDestinationNode.h +1 -1
- package/common/cpp/core/AudioNode.cpp +1 -1
- package/common/cpp/core/AudioNode.h +1 -1
- package/common/cpp/core/AudioScheduledSourceNode.cpp +1 -1
- package/common/cpp/core/AudioScheduledSourceNode.h +1 -1
- package/common/cpp/core/BiquadFilterNode.cpp +1 -1
- package/common/cpp/core/BiquadFilterNode.h +1 -1
- package/common/cpp/core/GainNode.cpp +3 -1
- package/common/cpp/core/GainNode.h +1 -1
- package/common/cpp/core/OscillatorNode.cpp +3 -1
- package/common/cpp/core/OscillatorNode.h +1 -1
- package/common/cpp/core/StereoPannerNode.cpp +1 -1
- package/common/cpp/core/StereoPannerNode.h +1 -1
- package/common/cpp/installer/AudioAPIModuleInstaller.cpp +49 -0
- package/common/cpp/installer/AudioAPIModuleInstaller.h +49 -0
- package/ios/AudioAPIModule.h +1 -1
- package/ios/AudioAPIModule.mm +10 -3
- package/ios/core/AudioDecoder.mm +2 -3
- package/ios/core/AudioPlayer.h +14 -0
- package/ios/core/AudioPlayer.m +85 -24
- package/ios/core/IOSAudioPlayer.h +2 -0
- package/ios/core/IOSAudioPlayer.mm +10 -0
- package/lib/module/core/AudioContext.js +7 -1
- package/lib/module/core/AudioContext.js.map +1 -1
- package/lib/module/index.js +11 -3
- package/lib/module/index.js.map +1 -1
- package/lib/module/specs/NativeAudioAPIModule.js +5 -0
- package/lib/module/specs/NativeAudioAPIModule.js.map +1 -0
- package/lib/module/web-core/AudioContext.js +6 -0
- package/lib/module/web-core/AudioContext.js.map +1 -1
- package/lib/typescript/core/AudioContext.d.ts +2 -0
- package/lib/typescript/core/AudioContext.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +4 -0
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/interfaces.d.ts +6 -1
- package/lib/typescript/interfaces.d.ts.map +1 -1
- package/lib/typescript/specs/NativeAudioAPIModule.d.ts +7 -0
- package/lib/typescript/specs/NativeAudioAPIModule.d.ts.map +1 -0
- package/lib/typescript/web-core/AudioContext.d.ts +3 -1
- package/lib/typescript/web-core/AudioContext.d.ts.map +1 -1
- package/package.json +9 -7
- package/src/core/AudioContext.ts +9 -1
- package/src/index.ts +16 -3
- package/src/interfaces.ts +7 -1
- package/src/specs/NativeAudioAPIModule.ts +7 -0
- package/src/web-core/AudioContext.tsx +9 -1
- package/android/src/main/java/com/swmansion/audioapi/nativemodules/AudioAPIModule.kt +0 -26
- package/common/cpp/HostObjects/AudioAPIInstallerHostObject.h +0 -56
- package/lib/module/specs/global.d.js +0 -4
- package/lib/module/specs/global.d.js.map +0 -1
- package/lib/module/specs/install.js +0 -18
- package/lib/module/specs/install.js.map +0 -1
- package/lib/typescript/specs/install.d.ts +0 -7
- package/lib/typescript/specs/install.d.ts.map +0 -1
- package/src/specs/global.d.ts +0 -12
- package/src/specs/install.ts +0 -32
|
@@ -17,7 +17,7 @@ class StereoPannerNode : public AudioNode {
|
|
|
17
17
|
[[nodiscard]] std::shared_ptr<AudioParam> getPanParam() const;
|
|
18
18
|
|
|
19
19
|
protected:
|
|
20
|
-
void processNode(AudioBus
|
|
20
|
+
void processNode(const std::shared_ptr<AudioBus>& processingBus, int framesToProcess) override;
|
|
21
21
|
|
|
22
22
|
private:
|
|
23
23
|
std::shared_ptr<AudioParam> panParam_;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
// #include "AudioAPIModuleInstaller.h"
|
|
2
|
+
//
|
|
3
|
+
// #include "AudioContext.h"
|
|
4
|
+
// #include "AudioContextHostObject.h"
|
|
5
|
+
//
|
|
6
|
+
// namespace audioapi {
|
|
7
|
+
//
|
|
8
|
+
// AudioAPIModuleInstaller::AudioAPIModuleInstaller(
|
|
9
|
+
// jsi::Runtime *jsiRuntime,
|
|
10
|
+
// const std::shared_ptr<react::CallInvoker> &jsCallInvoker):
|
|
11
|
+
// jsiRuntime_(jsiRuntime), jsCallInvoker_(jsCallInvoker) {}
|
|
12
|
+
//
|
|
13
|
+
// static void AudioAPIModuleInstaller::injectJSIBindings() {
|
|
14
|
+
// auto createAudioContext = getCreateAudioContextFunction();
|
|
15
|
+
// jsiRuntime_->global().setProperty(
|
|
16
|
+
// *jsiRuntime_, "createAudioContext", createAudioContext);
|
|
17
|
+
// }
|
|
18
|
+
//
|
|
19
|
+
// jsi::Function AudioAPIModuleInstaller::getCreateAudioContextFunction() {
|
|
20
|
+
// return jsi::Function::createFromHostFunction(
|
|
21
|
+
// *jsiRuntime_,
|
|
22
|
+
// jsi::PropNameID::forAscii(*jsiRuntime_, "createAudioContext"),
|
|
23
|
+
// 0,
|
|
24
|
+
// [this](
|
|
25
|
+
// jsi::Runtime &runtime,
|
|
26
|
+
// const jsi::Value &thisValue,
|
|
27
|
+
// const jsi::Value *args,
|
|
28
|
+
// size_t count) -> jsi::Value {
|
|
29
|
+
// std::shared_ptr<AudioContext> audioContext;
|
|
30
|
+
// if (args[0].isUndefined()) {
|
|
31
|
+
// audioContext = std::make_shared<AudioContext>();
|
|
32
|
+
// } else {
|
|
33
|
+
// auto sampleRate = static_cast<float>(args[0].getNumber());
|
|
34
|
+
// audioContext = std::make_shared<AudioContext>(sampleRate);
|
|
35
|
+
// }
|
|
36
|
+
//
|
|
37
|
+
// auto promiseVendor = std::make_shared<PromiseVendor>(jsiRuntime_,
|
|
38
|
+
// jsCallInvoker_);
|
|
39
|
+
//
|
|
40
|
+
// auto audioContextHostObject =
|
|
41
|
+
// std::make_shared<AudioContextHostObject>(
|
|
42
|
+
// audioContext, promiseVendor);
|
|
43
|
+
//
|
|
44
|
+
// return jsi::Object::createFromHostObject(
|
|
45
|
+
// runtime, audioContextHostObject);
|
|
46
|
+
// });
|
|
47
|
+
// }
|
|
48
|
+
//
|
|
49
|
+
// } // namespace audioapi
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#include <JsiPromise.h>
|
|
4
|
+
#include "AudioContext.h"
|
|
5
|
+
#include "AudioContextHostObject.h"
|
|
6
|
+
|
|
7
|
+
namespace audioapi {
|
|
8
|
+
|
|
9
|
+
using namespace facebook;
|
|
10
|
+
|
|
11
|
+
class AudioAPIModuleInstaller {
|
|
12
|
+
public:
|
|
13
|
+
static void injectJSIBindings(jsi::Runtime *jsiRuntime, const std::shared_ptr<react::CallInvoker> &jsCallInvoker) {
|
|
14
|
+
auto createAudioContext = getCreateAudioContextFunction(jsiRuntime, jsCallInvoker);
|
|
15
|
+
jsiRuntime->global().setProperty(
|
|
16
|
+
*jsiRuntime, "createAudioContext", createAudioContext);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
private:
|
|
20
|
+
static jsi::Function getCreateAudioContextFunction(jsi::Runtime *jsiRuntime, const std::shared_ptr<react::CallInvoker> &jsCallInvoker) {
|
|
21
|
+
return jsi::Function::createFromHostFunction(
|
|
22
|
+
*jsiRuntime,
|
|
23
|
+
jsi::PropNameID::forAscii(*jsiRuntime, "createAudioContext"),
|
|
24
|
+
0,
|
|
25
|
+
[jsiRuntime, jsCallInvoker](
|
|
26
|
+
jsi::Runtime &runtime,
|
|
27
|
+
const jsi::Value &thisValue,
|
|
28
|
+
const jsi::Value *args,
|
|
29
|
+
size_t count) -> jsi::Value {
|
|
30
|
+
std::shared_ptr<AudioContext> audioContext;
|
|
31
|
+
if (args[0].isUndefined()) {
|
|
32
|
+
audioContext = std::make_shared<AudioContext>();
|
|
33
|
+
} else {
|
|
34
|
+
auto sampleRate = static_cast<float>(args[0].getNumber());
|
|
35
|
+
audioContext = std::make_shared<AudioContext>(sampleRate);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
auto promiseVendor = std::make_shared<PromiseVendor>(jsiRuntime, jsCallInvoker);
|
|
39
|
+
|
|
40
|
+
auto audioContextHostObject = std::make_shared<AudioContextHostObject>(
|
|
41
|
+
audioContext, promiseVendor);
|
|
42
|
+
|
|
43
|
+
return jsi::Object::createFromHostObject(
|
|
44
|
+
runtime, audioContextHostObject);
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
} // namespace audioapi
|
package/ios/AudioAPIModule.h
CHANGED
package/ios/AudioAPIModule.mm
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
#import <ReactCommon/RCTTurboModule.h>
|
|
7
7
|
#endif // RCT_NEW_ARCH_ENABLED
|
|
8
8
|
|
|
9
|
-
#
|
|
9
|
+
#include "AudioAPIModuleInstaller.h"
|
|
10
10
|
|
|
11
11
|
@implementation AudioAPIModule
|
|
12
12
|
|
|
@@ -38,11 +38,18 @@ RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(install)
|
|
|
38
38
|
|
|
39
39
|
assert(jsiRuntime != nullptr);
|
|
40
40
|
|
|
41
|
-
|
|
42
|
-
hostObject->install();
|
|
41
|
+
audioapi::AudioAPIModuleInstaller::injectJSIBindings(jsiRuntime, jsCallInvoker);
|
|
43
42
|
|
|
44
43
|
NSLog(@"Successfully installed JSI bindings for react-native-audio-api!");
|
|
45
44
|
return @true;
|
|
46
45
|
}
|
|
47
46
|
|
|
47
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
48
|
+
- (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
|
|
49
|
+
(const facebook::react::ObjCTurboModule::InitParams &)params
|
|
50
|
+
{
|
|
51
|
+
return std::make_shared<facebook::react::NativeAudioAPIModuleSpecJSI>(params);
|
|
52
|
+
}
|
|
53
|
+
#endif // RCT_NEW_ARCH_ENABLED
|
|
54
|
+
|
|
48
55
|
@end
|
package/ios/core/AudioDecoder.mm
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
namespace audioapi {
|
|
9
9
|
|
|
10
|
-
AudioBus
|
|
10
|
+
std::shared_ptr<AudioBus> AudioDecoder::decodeWithFilePath(const std::string &path) const
|
|
11
11
|
{
|
|
12
12
|
ma_decoder decoder;
|
|
13
13
|
ma_decoder_config config = ma_decoder_config_init(ma_format_f32, 2, sampleRate_);
|
|
@@ -23,7 +23,7 @@ AudioBus *AudioDecoder::decodeWithFilePath(const std::string &path) const
|
|
|
23
23
|
ma_uint64 totalFrameCount;
|
|
24
24
|
ma_decoder_get_length_in_pcm_frames(&decoder, &totalFrameCount);
|
|
25
25
|
|
|
26
|
-
auto
|
|
26
|
+
auto audioBus = std::make_shared<AudioBus>(static_cast<int>(totalFrameCount), 2, sampleRate_);
|
|
27
27
|
auto *buffer = new float[totalFrameCount * 2];
|
|
28
28
|
|
|
29
29
|
ma_uint64 framesDecoded;
|
|
@@ -32,7 +32,6 @@ AudioBus *AudioDecoder::decodeWithFilePath(const std::string &path) const
|
|
|
32
32
|
NSLog(@"Failed to decode audio file: %s", path.c_str());
|
|
33
33
|
|
|
34
34
|
delete[] buffer;
|
|
35
|
-
delete audioBus;
|
|
36
35
|
ma_decoder_uninit(&decoder);
|
|
37
36
|
|
|
38
37
|
return nullptr;
|
package/ios/core/AudioPlayer.h
CHANGED
|
@@ -9,10 +9,12 @@ typedef void (^RenderAudioBlock)(AudioBufferList *outputBuffer, int numFrames);
|
|
|
9
9
|
|
|
10
10
|
@property (nonatomic, strong) AVAudioEngine *audioEngine;
|
|
11
11
|
@property (nonatomic, weak) AVAudioSession *audioSession;
|
|
12
|
+
@property (nonatomic, weak) NSNotificationCenter *notificationCenter;
|
|
12
13
|
@property (nonatomic, strong) AVAudioFormat *format;
|
|
13
14
|
@property (nonatomic, strong) AVAudioSourceNode *sourceNode;
|
|
14
15
|
@property (nonatomic, copy) RenderAudioBlock renderAudio;
|
|
15
16
|
@property (nonatomic, assign) float sampleRate;
|
|
17
|
+
@property (nonatomic, assign) bool isRunning;
|
|
16
18
|
|
|
17
19
|
- (instancetype)initWithRenderAudioBlock:(RenderAudioBlock)renderAudio;
|
|
18
20
|
|
|
@@ -24,6 +26,18 @@ typedef void (^RenderAudioBlock)(AudioBufferList *outputBuffer, int numFrames);
|
|
|
24
26
|
|
|
25
27
|
- (void)stop;
|
|
26
28
|
|
|
29
|
+
- (void)resume;
|
|
30
|
+
|
|
31
|
+
- (void)suspend;
|
|
32
|
+
|
|
27
33
|
- (void)cleanup;
|
|
28
34
|
|
|
35
|
+
- (void)setupAndInitAudioSession;
|
|
36
|
+
|
|
37
|
+
- (void)setupAndInitNotificationHandlers;
|
|
38
|
+
|
|
39
|
+
- (void)connectAudioEngine;
|
|
40
|
+
|
|
41
|
+
- (void)handleEngineConfigurationChange:(NSNotification *)notification;
|
|
42
|
+
|
|
29
43
|
@end
|
package/ios/core/AudioPlayer.m
CHANGED
|
@@ -8,15 +8,11 @@
|
|
|
8
8
|
self.renderAudio = [renderAudio copy];
|
|
9
9
|
self.audioEngine = [[AVAudioEngine alloc] init];
|
|
10
10
|
self.audioEngine.mainMixerNode.outputVolume = 1;
|
|
11
|
+
self.isRunning = true;
|
|
11
12
|
|
|
12
|
-
self
|
|
13
|
+
[self setupAndInitAudioSession];
|
|
14
|
+
[self setupAndInitNotificationHandlers];
|
|
13
15
|
|
|
14
|
-
// TODO:
|
|
15
|
-
// We will probably want to change it to AVAudioSessionCategoryPlayAndRecord in the future.
|
|
16
|
-
// Eventually we to make this a dynamic setting, if user of the lib wants to use recording features.
|
|
17
|
-
// But setting a recording category might require some setup first, so lets skip it for now :)
|
|
18
|
-
// [self.audioSession setCategory:AVAudioSessionCategoryPlayback error:&error];
|
|
19
|
-
// [self.audioSession setActive:true error:&error];
|
|
20
16
|
|
|
21
17
|
self.sampleRate = [self.audioSession sampleRate];
|
|
22
18
|
|
|
@@ -45,15 +41,10 @@
|
|
|
45
41
|
self.renderAudio = [renderAudio copy];
|
|
46
42
|
self.audioEngine = [[AVAudioEngine alloc] init];
|
|
47
43
|
self.audioEngine.mainMixerNode.outputVolume = 1;
|
|
44
|
+
self.isRunning = true;
|
|
48
45
|
|
|
49
|
-
self
|
|
50
|
-
|
|
51
|
-
// TODO:
|
|
52
|
-
// We will probably want to change it to AVAudioSessionCategoryPlayAndRecord in the future.
|
|
53
|
-
// Eventually we to make this a dynamic setting, if user of the lib wants to use recording features.
|
|
54
|
-
// But setting a recording category might require some setup first, so lets skip it for now :)
|
|
55
|
-
// [self.audioSession setCategory:AVAudioSessionCategoryPlayback error:&error];
|
|
56
|
-
// [self.audioSession setActive:true error:&error];
|
|
46
|
+
[self setupAndInitAudioSession];
|
|
47
|
+
[self setupAndInitNotificationHandlers];
|
|
57
48
|
|
|
58
49
|
self.sampleRate = sampleRate;
|
|
59
50
|
|
|
@@ -83,19 +74,13 @@
|
|
|
83
74
|
|
|
84
75
|
- (void)start
|
|
85
76
|
{
|
|
86
|
-
|
|
87
|
-
[self
|
|
88
|
-
|
|
89
|
-
if (!self.audioEngine.isRunning) {
|
|
90
|
-
NSError *error = nil;
|
|
91
|
-
if (![self.audioEngine startAndReturnError:&error]) {
|
|
92
|
-
NSLog(@"Error starting audio engine: %@", [error localizedDescription]);
|
|
93
|
-
}
|
|
94
|
-
}
|
|
77
|
+
self.isRunning = true;
|
|
78
|
+
[self connectAudioEngine];
|
|
95
79
|
}
|
|
96
80
|
|
|
97
81
|
- (void)stop
|
|
98
82
|
{
|
|
83
|
+
self.isRunning = false;
|
|
99
84
|
[self.audioEngine detachNode:self.sourceNode];
|
|
100
85
|
|
|
101
86
|
if (self.audioEngine.isRunning) {
|
|
@@ -110,6 +95,19 @@
|
|
|
110
95
|
}
|
|
111
96
|
}
|
|
112
97
|
|
|
98
|
+
- (void)suspend
|
|
99
|
+
{
|
|
100
|
+
[self.audioEngine pause];
|
|
101
|
+
self.isRunning = false;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
- (void)resume
|
|
105
|
+
{
|
|
106
|
+
self.isRunning = true;
|
|
107
|
+
[self setupAndInitAudioSession];
|
|
108
|
+
[self connectAudioEngine];
|
|
109
|
+
}
|
|
110
|
+
|
|
113
111
|
- (void)cleanup
|
|
114
112
|
{
|
|
115
113
|
self.audioEngine = nil;
|
|
@@ -131,4 +129,67 @@
|
|
|
131
129
|
return noErr;
|
|
132
130
|
}
|
|
133
131
|
|
|
132
|
+
- (void)setupAndInitAudioSession
|
|
133
|
+
{
|
|
134
|
+
NSError *error = nil;
|
|
135
|
+
|
|
136
|
+
if (!self.audioSession) {
|
|
137
|
+
self.audioSession = [AVAudioSession sharedInstance];
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
[self.audioSession setCategory:AVAudioSessionCategoryPlayback
|
|
141
|
+
mode:AVAudioSessionModeDefault
|
|
142
|
+
options:AVAudioSessionCategoryOptionDuckOthers|AVAudioSessionCategoryOptionAllowBluetooth|AVAudioSessionCategoryOptionAllowAirPlay
|
|
143
|
+
error:&error];
|
|
144
|
+
|
|
145
|
+
if (error != nil) {
|
|
146
|
+
NSLog(@"Error while configuring audio session: %@", [error localizedDescription]);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
[self.audioSession setActive:true error:&error];
|
|
150
|
+
|
|
151
|
+
if (error != nil) {
|
|
152
|
+
NSLog(@"Error while activating audio session: %@", [error localizedDescription]);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
- (void)setupAndInitNotificationHandlers
|
|
157
|
+
{
|
|
158
|
+
if (!self.notificationCenter) {
|
|
159
|
+
self.notificationCenter = [NSNotificationCenter defaultCenter];
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
[self.notificationCenter addObserver:self
|
|
163
|
+
selector:@selector(handleEngineConfigurationChange:)
|
|
164
|
+
name:AVAudioEngineConfigurationChangeNotification
|
|
165
|
+
object:nil];
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
- (void)connectAudioEngine
|
|
169
|
+
{
|
|
170
|
+
if ([self.audioEngine isRunning]) {
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
[self.audioEngine attachNode:self.sourceNode];
|
|
175
|
+
[self.audioEngine connect:self.sourceNode to:self.audioEngine.mainMixerNode format:self.format];
|
|
176
|
+
|
|
177
|
+
if (![self.audioEngine isRunning]) {
|
|
178
|
+
NSError *error = nil;
|
|
179
|
+
|
|
180
|
+
if (![self.audioEngine startAndReturnError:&error]) {
|
|
181
|
+
NSLog(@"Error starting audio engine: %@", [error localizedDescription]);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
- (void)handleEngineConfigurationChange:(NSNotification *)notification
|
|
187
|
+
{
|
|
188
|
+
if (!self.isRunning) {
|
|
189
|
+
return;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
[self connectAudioEngine];
|
|
193
|
+
}
|
|
194
|
+
|
|
134
195
|
@end
|
|
@@ -83,6 +83,16 @@ void IOSAudioPlayer::stop()
|
|
|
83
83
|
return [audioPlayer_ stop];
|
|
84
84
|
}
|
|
85
85
|
|
|
86
|
+
void IOSAudioPlayer::resume()
|
|
87
|
+
{
|
|
88
|
+
return [audioPlayer_ resume];
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
void IOSAudioPlayer::suspend()
|
|
92
|
+
{
|
|
93
|
+
return [audioPlayer_ suspend];
|
|
94
|
+
}
|
|
95
|
+
|
|
86
96
|
float IOSAudioPlayer::getSampleRate() const
|
|
87
97
|
{
|
|
88
98
|
return [audioPlayer_ getSampleRate];
|
|
@@ -7,10 +7,16 @@ export default class AudioContext extends BaseAudioContext {
|
|
|
7
7
|
if (options && (options.sampleRate < 8000 || options.sampleRate > 96000)) {
|
|
8
8
|
throw new NotSupportedError(`The provided sampleRate is not supported: ${options.sampleRate}`);
|
|
9
9
|
}
|
|
10
|
-
super(global.
|
|
10
|
+
super(global.createAudioContext(options?.sampleRate));
|
|
11
11
|
}
|
|
12
12
|
async close() {
|
|
13
13
|
await this.context.close();
|
|
14
14
|
}
|
|
15
|
+
async resume() {
|
|
16
|
+
await this.context.resume();
|
|
17
|
+
}
|
|
18
|
+
async suspend() {
|
|
19
|
+
await this.context.suspend();
|
|
20
|
+
}
|
|
15
21
|
}
|
|
16
22
|
//# sourceMappingURL=AudioContext.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BaseAudioContext","NotSupportedError","AudioContext","constructor","options","sampleRate","global","
|
|
1
|
+
{"version":3,"names":["BaseAudioContext","NotSupportedError","AudioContext","constructor","options","sampleRate","global","createAudioContext","close","context","resume","suspend"],"sourceRoot":"../../../src","sources":["core/AudioContext.ts"],"mappings":";;AACA,OAAOA,gBAAgB,MAAM,uBAAoB;AAEjD,SAASC,iBAAiB,QAAQ,oBAAW;AAE7C,eAAe,MAAMC,YAAY,SAASF,gBAAgB,CAAC;EACzDG,WAAWA,CAACC,OAA6B,EAAE;IACzC,IAAIA,OAAO,KAAKA,OAAO,CAACC,UAAU,GAAG,IAAI,IAAID,OAAO,CAACC,UAAU,GAAG,KAAK,CAAC,EAAE;MACxE,MAAM,IAAIJ,iBAAiB,CACzB,6CAA6CG,OAAO,CAACC,UAAU,EACjE,CAAC;IACH;IAEA,KAAK,CAACC,MAAM,CAACC,kBAAkB,CAACH,OAAO,EAAEC,UAAU,CAAC,CAAC;EACvD;EAEA,MAAMG,KAAKA,CAAA,EAAuB;IAChC,MAAO,IAAI,CAACC,OAAO,CAAmBD,KAAK,CAAC,CAAC;EAC/C;EAEA,MAAME,MAAMA,CAAA,EAAuB;IACjC,MAAO,IAAI,CAACD,OAAO,CAAmBC,MAAM,CAAC,CAAC;EAChD;EAEA,MAAMC,OAAOA,CAAA,EAAuB;IAClC,MAAO,IAAI,CAACF,OAAO,CAAmBE,OAAO,CAAC,CAAC;EACjD;AACF","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -1,8 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
import NativeAudioAPIModule from "./specs/NativeAudioAPIModule.js";
|
|
4
|
+
|
|
5
|
+
/* eslint-disable no-var */
|
|
6
|
+
|
|
7
|
+
/* eslint-disable no-var */
|
|
8
|
+
|
|
9
|
+
if (global.createAudioContext == null) {
|
|
10
|
+
if (!NativeAudioAPIModule) {
|
|
11
|
+
throw new Error(`Failed to install react-native-audio-api: The native module could not be found.`);
|
|
12
|
+
}
|
|
13
|
+
NativeAudioAPIModule.install();
|
|
6
14
|
}
|
|
7
15
|
export { default as AudioBuffer } from "./core/AudioBuffer.js";
|
|
8
16
|
export { default as AudioBufferSourceNode } from "./core/AudioBufferSourceNode.js";
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["NativeAudioAPIModule","global","createAudioContext","Error","install","default","AudioBuffer","AudioBufferSourceNode","AudioContext","AudioDestinationNode","AudioNode","AnalyserNode","AudioParam","AudioScheduledSourceNode","BaseAudioContext","BiquadFilterNode","GainNode","OscillatorNode","StereoPannerNode","OscillatorType","BiquadFilterType","ChannelCountMode","ChannelInterpretation","ContextState","WindowType","PeriodicWaveConstraints","IndexSizeError","InvalidAccessError","InvalidStateError","RangeError","NotSupportedError"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA,OAAOA,oBAAoB,MAAM,iCAA8B;;AAG/D;;AAIA;;AAEA,IAAIC,MAAM,CAACC,kBAAkB,IAAI,IAAI,EAAE;EACrC,IAAI,CAACF,oBAAoB,EAAE;IACzB,MAAM,IAAIG,KAAK,CACb,iFACF,CAAC;EACH;EAEAH,oBAAoB,CAACI,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,oBAAoB,QAAQ,gCAA6B;AAC7E,SAASJ,OAAO,IAAIK,SAAS,QAAQ,qBAAkB;AACvD,SAASL,OAAO,IAAIM,YAAY,QAAQ,wBAAqB;AAC7D,SAASN,OAAO,IAAIO,UAAU,QAAQ,sBAAmB;AACzD,SAASP,OAAO,IAAIQ,wBAAwB,QAAQ,oCAAiC;AACrF,SAASR,OAAO,IAAIS,gBAAgB,QAAQ,4BAAyB;AACrE,SAAST,OAAO,IAAIU,gBAAgB,QAAQ,4BAAyB;AACrE,SAASV,OAAO,IAAIW,QAAQ,QAAQ,oBAAiB;AACrD,SAASX,OAAO,IAAIY,cAAc,QAAQ,0BAAuB;AACjE,SAASZ,OAAO,IAAIa,gBAAgB,QAAQ,4BAAyB;AAErE,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 @@
|
|
|
1
|
+
{"version":3,"names":["TurboModuleRegistry","get"],"sourceRoot":"../../../src","sources":["specs/NativeAudioAPIModule.ts"],"mappings":";;AAAA,SAASA,mBAAmB,QAAqB,cAAc;AAM/D,eAAeA,mBAAmB,CAACC,GAAG,CAAO,gBAAgB,CAAC","ignoreList":[]}
|
|
@@ -68,5 +68,11 @@ export default class AudioContext {
|
|
|
68
68
|
async close() {
|
|
69
69
|
await this.context.close();
|
|
70
70
|
}
|
|
71
|
+
async resume() {
|
|
72
|
+
await this.context.resume();
|
|
73
|
+
}
|
|
74
|
+
async suspend() {
|
|
75
|
+
await this.context.suspend();
|
|
76
|
+
}
|
|
71
77
|
}
|
|
72
78
|
//# sourceMappingURL=AudioContext.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["InvalidAccessError","NotSupportedError","AnalyserNode","AudioDestinationNode","AudioBuffer","AudioBufferSourceNode","BiquadFilterNode","GainNode","OscillatorNode","PeriodicWave","StereoPannerNode","AudioContext","constructor","options","sampleRate","context","window","destination","currentTime","state","createOscillator","createGain","createStereoPanner","createBiquadFilter","createBufferSource","createBuffer","numOfChannels","length","createPeriodicWave","real","imag","constraints","createAnalyser","decodeAudioDataSource","source","arrayBuffer","fetch","then","response","decodeAudioData","close"],"sourceRoot":"../../../src","sources":["web-core/AudioContext.tsx"],"mappings":"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
|
|
1
|
+
{"version":3,"names":["InvalidAccessError","NotSupportedError","AnalyserNode","AudioDestinationNode","AudioBuffer","AudioBufferSourceNode","BiquadFilterNode","GainNode","OscillatorNode","PeriodicWave","StereoPannerNode","AudioContext","constructor","options","sampleRate","context","window","destination","currentTime","state","createOscillator","createGain","createStereoPanner","createBiquadFilter","createBufferSource","createBuffer","numOfChannels","length","createPeriodicWave","real","imag","constraints","createAnalyser","decodeAudioDataSource","source","arrayBuffer","fetch","then","response","decodeAudioData","close","resume","suspend"],"sourceRoot":"../../../src","sources":["web-core/AudioContext.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,5 +3,7 @@ import { AudioContextOptions } from '../types';
|
|
|
3
3
|
export default class AudioContext extends BaseAudioContext {
|
|
4
4
|
constructor(options?: AudioContextOptions);
|
|
5
5
|
close(): Promise<undefined>;
|
|
6
|
+
resume(): Promise<undefined>;
|
|
7
|
+
suspend(): Promise<undefined>;
|
|
6
8
|
}
|
|
7
9
|
//# sourceMappingURL=AudioContext.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AudioContext.d.ts","sourceRoot":"","sources":["../../../src/core/AudioContext.ts"],"names":[],"mappings":"AACA,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAG/C,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,gBAAgB;gBAC5C,OAAO,CAAC,EAAE,mBAAmB;IAUnC,KAAK,IAAI,OAAO,CAAC,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"AudioContext.d.ts","sourceRoot":"","sources":["../../../src/core/AudioContext.ts"],"names":[],"mappings":"AACA,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAG/C,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,gBAAgB;gBAC5C,OAAO,CAAC,EAAE,mBAAmB;IAUnC,KAAK,IAAI,OAAO,CAAC,SAAS,CAAC;IAI3B,MAAM,IAAI,OAAO,CAAC,SAAS,CAAC;IAI5B,OAAO,IAAI,OAAO,CAAC,SAAS,CAAC;CAGpC"}
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
import type { IAudioContext } from './interfaces';
|
|
2
|
+
declare global {
|
|
3
|
+
var createAudioContext: (sampleRate?: number) => IAudioContext;
|
|
4
|
+
}
|
|
1
5
|
export { default as AudioBuffer } from './core/AudioBuffer';
|
|
2
6
|
export { default as AudioBufferSourceNode } from './core/AudioBufferSourceNode';
|
|
3
7
|
export { default as AudioContext } from './core/AudioContext';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAGlD,OAAO,CAAC,MAAM,CAAC;IACb,IAAI,kBAAkB,EAAE,CAAC,UAAU,CAAC,EAAE,MAAM,KAAK,aAAa,CAAC;CAChE;AAaD,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,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;AAEtE,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"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import { ContextState, BiquadFilterType, OscillatorType, ChannelCountMode, ChannelInterpretation, WindowType } from './types';
|
|
2
|
+
export interface AudioAPIInstaller {
|
|
3
|
+
createAudioContext: (sampleRate?: number) => IAudioContext;
|
|
4
|
+
}
|
|
2
5
|
export interface IBaseAudioContext {
|
|
3
6
|
readonly destination: IAudioDestinationNode;
|
|
4
7
|
readonly state: ContextState;
|
|
@@ -15,7 +18,9 @@ export interface IBaseAudioContext {
|
|
|
15
18
|
decodeAudioDataSource: (sourcePath: string) => Promise<IAudioBuffer>;
|
|
16
19
|
}
|
|
17
20
|
export interface IAudioContext extends IBaseAudioContext {
|
|
18
|
-
close(): Promise<
|
|
21
|
+
close(): Promise<void>;
|
|
22
|
+
resume(): Promise<void>;
|
|
23
|
+
suspend(): Promise<void>;
|
|
19
24
|
}
|
|
20
25
|
export interface IAudioNode {
|
|
21
26
|
readonly context: BaseAudioContext;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,qBAAqB,EACrB,UAAU,EACX,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,WAAW,EAAE,qBAAqB,CAAC;IAC5C,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B,gBAAgB,IAAI,eAAe,CAAC;IACpC,UAAU,IAAI,SAAS,CAAC;IACxB,kBAAkB,IAAI,iBAAiB,CAAC;IACxC,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;IAC5C,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;IACjD,YAAY,EAAE,CACZ,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,KACf,YAAY,CAAC;IAClB,kBAAkB,EAAE,CAClB,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,EAAE,MAAM,EAAE,EACd,oBAAoB,EAAE,OAAO,KAC1B,aAAa,CAAC;IACnB,cAAc,EAAE,MAAM,aAAa,CAAC;IACpC,qBAAqB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;CACtE;AAED,MAAM,WAAW,aAAc,SAAQ,iBAAiB;IACtD,KAAK,IAAI,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NativeAudioAPIModule.d.ts","sourceRoot":"","sources":["../../../src/specs/NativeAudioAPIModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhE,UAAU,IAAK,SAAQ,WAAW;IAChC,OAAO,IAAI,OAAO,CAAC;CACpB;;AAED,wBAA+D"}
|
|
@@ -25,6 +25,8 @@ export default class AudioContext implements BaseAudioContext {
|
|
|
25
25
|
createPeriodicWave(real: number[], imag: number[], constraints?: PeriodicWaveConstraints): PeriodicWave;
|
|
26
26
|
createAnalyser(): AnalyserNode;
|
|
27
27
|
decodeAudioDataSource(source: string): Promise<AudioBuffer>;
|
|
28
|
-
close(): Promise<
|
|
28
|
+
close(): Promise<void>;
|
|
29
|
+
resume(): Promise<void>;
|
|
30
|
+
suspend(): Promise<void>;
|
|
29
31
|
}
|
|
30
32
|
//# sourceMappingURL=AudioContext.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AudioContext.d.ts","sourceRoot":"","sources":["../../../src/web-core/AudioContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,uBAAuB,EACvB,mBAAmB,EACpB,MAAM,UAAU,CAAC;AAElB,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAElD,MAAM,CAAC,OAAO,OAAO,YAAa,YAAW,gBAAgB;IAC3D,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,YAAY,CAAC;IAE1C,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC;IAC3C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;gBAEhB,OAAO,CAAC,EAAE,mBAAmB;IAazC,IAAW,WAAW,IAAI,MAAM,CAE/B;IAED,IAAW,KAAK,IAAI,YAAY,CAE/B;IAED,gBAAgB,IAAI,cAAc;IAIlC,UAAU,IAAI,QAAQ;IAItB,kBAAkB,IAAI,gBAAgB;IAItC,kBAAkB,IAAI,gBAAgB;IAItC,kBAAkB,IAAI,qBAAqB;IAI3C,YAAY,CACV,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GACjB,WAAW;IAwBd,kBAAkB,CAChB,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,EAAE,MAAM,EAAE,EACd,WAAW,CAAC,EAAE,uBAAuB,GACpC,YAAY;IAYf,cAAc,IAAI,YAAY;IAIxB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAQ3D,KAAK,IAAI,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"AudioContext.d.ts","sourceRoot":"","sources":["../../../src/web-core/AudioContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,uBAAuB,EACvB,mBAAmB,EACpB,MAAM,UAAU,CAAC;AAElB,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAElD,MAAM,CAAC,OAAO,OAAO,YAAa,YAAW,gBAAgB;IAC3D,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,YAAY,CAAC;IAE1C,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC;IAC3C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;gBAEhB,OAAO,CAAC,EAAE,mBAAmB;IAazC,IAAW,WAAW,IAAI,MAAM,CAE/B;IAED,IAAW,KAAK,IAAI,YAAY,CAE/B;IAED,gBAAgB,IAAI,cAAc;IAIlC,UAAU,IAAI,QAAQ;IAItB,kBAAkB,IAAI,gBAAgB;IAItC,kBAAkB,IAAI,gBAAgB;IAItC,kBAAkB,IAAI,qBAAqB;IAI3C,YAAY,CACV,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GACjB,WAAW;IAwBd,kBAAkB,CAChB,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,EAAE,MAAM,EAAE,EACd,WAAW,CAAC,EAAE,uBAAuB,GACpC,YAAY;IAYf,cAAc,IAAI,YAAY;IAIxB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAQ3D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAIvB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAG/B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-audio-api",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.11",
|
|
4
4
|
"description": "react-native-audio-api provides system for controlling audio in React Native environment compatible with Web Audio API specification",
|
|
5
5
|
"main": "lib/commonjs/index",
|
|
6
6
|
"module": "lib/module/index",
|
|
@@ -36,15 +36,17 @@
|
|
|
36
36
|
"scripts": {
|
|
37
37
|
"test": "jest",
|
|
38
38
|
"typecheck": "tsc --noEmit",
|
|
39
|
-
"lint": "yarn lint:js && yarn lint:cpp && yarn lint:kotlin",
|
|
40
|
-
"
|
|
41
|
-
"lint:js": "eslint \"**/*.{js,ts,tsx}\"",
|
|
39
|
+
"lint": "yarn lint:js && yarn lint:cpp & yarn lint:ios && yarn lint:kotlin",
|
|
40
|
+
"lint:js": "eslint src && yarn prettier --check src",
|
|
42
41
|
"lint:cpp": "./scripts/cpplint.sh",
|
|
42
|
+
"lint:ios": "yarn format:ios --dry-run -Werror",
|
|
43
43
|
"lint:kotlin": "ktlint 'android/src/main/java/**'",
|
|
44
|
-
"format
|
|
45
|
-
"format:
|
|
44
|
+
"format": "yarn format:js && yarn format:android:cpp && yarn format:android:kotlin && yarn format:ios && yarn format:common",
|
|
45
|
+
"format:js": "prettier --write --list-different src",
|
|
46
|
+
"format:android:cpp": "find android/src/ -path android/src/cpp/libs -iname \"*.h\" -o -iname \"*.cpp\" | xargs clang-format -i",
|
|
47
|
+
"format:android:kotlin": "ktlint -F 'android/src/main/java/**'",
|
|
48
|
+
"format:ios": "find ios/ -iname \"*.h\" -o -iname \"*.m\" -o -iname \"*.mm\" -o -iname \"*.cpp\" | xargs clang-format -i",
|
|
46
49
|
"format:common": "find common/cpp/ -path 'common/cpp/libs' -prune -iname \"*.h\" -o -iname \"*.cpp\" | xargs clang-format -i",
|
|
47
|
-
"format:kotlin": "ktlint -F 'android/src/main/java/**'",
|
|
48
50
|
"build": "bob build",
|
|
49
51
|
"prepack": "cp ../../README.md ./README.md",
|
|
50
52
|
"postpack": "rm ./README.md"
|