react-native-audio-api 0.6.5-rc.0 → 0.6.5
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 +4 -1
- package/android/src/main/cpp/audioapi/android/AudioAPIModule.cpp +4 -2
- package/android/src/main/cpp/audioapi/android/core/AudioDecoder.cpp +12 -14
- package/android/src/main/cpp/audioapi/android/core/AudioPlayer.cpp +38 -8
- package/android/src/main/cpp/audioapi/android/core/AudioPlayer.h +9 -3
- package/android/src/main/java/com/swmansion/audioapi/AudioAPIModule.kt +5 -1
- package/android/src/main/java/com/swmansion/audioapi/system/LockScreenManager.kt +2 -2
- package/android/src/main/java/com/swmansion/audioapi/system/MediaNotificationManager.kt +2 -2
- package/android/src/main/java/com/swmansion/audioapi/system/MediaSessionManager.kt +46 -0
- package/android/src/main/res/drawable/skip_backward_15.xml +16 -0
- package/android/src/main/res/drawable/skip_forward_15.xml +16 -0
- package/android/src/oldarch/NativeAudioAPIModuleSpec.java +4 -0
- package/common/cpp/audioapi/HostObjects/AudioBufferBaseSourceNodeHostObject.h +17 -1
- package/common/cpp/audioapi/HostObjects/AudioBufferSourceNodeHostObject.h +3 -5
- package/common/cpp/audioapi/HostObjects/AudioScheduledSourceNodeHostObject.h +11 -2
- package/common/cpp/audioapi/core/AudioContext.cpp +6 -4
- package/common/cpp/audioapi/core/AudioContext.h +1 -1
- package/common/cpp/audioapi/core/AudioParam.cpp +17 -5
- package/common/cpp/audioapi/core/AudioParam.h +3 -0
- package/common/cpp/audioapi/core/BaseAudioContext.cpp +1 -1
- package/common/cpp/audioapi/core/BaseAudioContext.h +3 -2
- package/common/cpp/audioapi/core/OfflineAudioContext.cpp +2 -1
- package/common/cpp/audioapi/core/OfflineAudioContext.h +1 -1
- package/common/cpp/audioapi/core/effects/PeriodicWave.cpp +1 -1
- package/common/cpp/audioapi/core/inputs/AudioRecorder.cpp +4 -2
- package/common/cpp/audioapi/core/inputs/AudioRecorder.h +1 -0
- package/common/cpp/audioapi/core/sources/AudioBuffer.h +1 -0
- package/common/cpp/audioapi/core/sources/AudioBufferBaseSourceNode.cpp +26 -1
- package/common/cpp/audioapi/core/sources/AudioBufferBaseSourceNode.h +10 -5
- package/common/cpp/audioapi/core/sources/AudioScheduledSourceNode.cpp +24 -2
- package/common/cpp/audioapi/core/sources/AudioScheduledSourceNode.h +3 -1
- package/common/cpp/audioapi/core/utils/AudioNodeDestructor.h +1 -0
- package/common/cpp/audioapi/core/utils/AudioNodeManager.h +1 -2
- package/common/cpp/audioapi/dsp/AudioUtils.cpp +1 -1
- package/common/cpp/audioapi/events/AudioEventHandlerRegistry.cpp +121 -41
- package/common/cpp/audioapi/events/AudioEventHandlerRegistry.h +9 -5
- package/common/cpp/audioapi/events/IAudioEventHandlerRegistry.h +25 -0
- package/common/cpp/audioapi/jsi/JsiPromise.cpp +1 -0
- package/common/cpp/audioapi/utils/AudioArray.h +1 -0
- package/common/cpp/audioapi/utils/CircularAudioArray.h +1 -0
- package/common/cpp/test/CMakeLists.txt +63 -0
- package/common/cpp/test/GainTest.cpp +78 -0
- package/common/cpp/test/MockAudioEventHandlerRegistry.h +22 -0
- package/common/cpp/test/OscillatorTest.cpp +22 -0
- package/common/cpp/test/RunTests.sh +26 -0
- package/ios/audioapi/ios/AudioAPIModule.mm +17 -12
- package/ios/audioapi/ios/core/IOSAudioPlayer.h +2 -1
- package/ios/audioapi/ios/core/IOSAudioPlayer.mm +5 -2
- package/ios/audioapi/ios/system/AudioSessionManager.h +4 -0
- package/ios/audioapi/ios/system/AudioSessionManager.mm +26 -0
- package/ios/audioapi/ios/system/LockScreenManager.mm +2 -0
- package/lib/commonjs/core/AudioBufferBaseSourceNode.js +10 -6
- package/lib/commonjs/core/AudioBufferBaseSourceNode.js.map +1 -1
- package/lib/commonjs/core/AudioBufferSourceNode.js +2 -2
- package/lib/commonjs/core/AudioBufferSourceNode.js.map +1 -1
- package/lib/commonjs/core/AudioScheduledSourceNode.js +8 -4
- package/lib/commonjs/core/AudioScheduledSourceNode.js.map +1 -1
- package/lib/commonjs/plugin/withAudioAPI.js +1 -1
- package/lib/commonjs/plugin/withAudioAPI.js.map +1 -1
- package/lib/commonjs/specs/NativeAudioAPIModule.js.map +1 -1
- package/lib/commonjs/system/AudioManager.js +3 -0
- package/lib/commonjs/system/AudioManager.js.map +1 -1
- package/lib/module/core/AudioBufferBaseSourceNode.js +10 -6
- package/lib/module/core/AudioBufferBaseSourceNode.js.map +1 -1
- package/lib/module/core/AudioBufferSourceNode.js +2 -2
- package/lib/module/core/AudioBufferSourceNode.js.map +1 -1
- package/lib/module/core/AudioScheduledSourceNode.js +8 -4
- package/lib/module/core/AudioScheduledSourceNode.js.map +1 -1
- package/lib/module/plugin/withAudioAPI.js +1 -1
- package/lib/module/plugin/withAudioAPI.js.map +1 -1
- package/lib/module/specs/NativeAudioAPIModule.js.map +1 -1
- package/lib/module/system/AudioManager.js +3 -0
- package/lib/module/system/AudioManager.js.map +1 -1
- package/lib/typescript/core/AudioBufferBaseSourceNode.d.ts +6 -3
- package/lib/typescript/core/AudioBufferBaseSourceNode.d.ts.map +1 -1
- package/lib/typescript/core/AudioBufferSourceNode.d.ts.map +1 -1
- package/lib/typescript/core/AudioScheduledSourceNode.d.ts +3 -1
- package/lib/typescript/core/AudioScheduledSourceNode.d.ts.map +1 -1
- package/lib/typescript/interfaces.d.ts +2 -2
- package/lib/typescript/interfaces.d.ts.map +1 -1
- package/lib/typescript/specs/NativeAudioAPIModule.d.ts +2 -1
- package/lib/typescript/specs/NativeAudioAPIModule.d.ts.map +1 -1
- package/lib/typescript/system/AudioManager.d.ts +2 -1
- package/lib/typescript/system/AudioManager.d.ts.map +1 -1
- package/lib/typescript/system/types.d.ts +11 -0
- package/lib/typescript/system/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/core/AudioBufferBaseSourceNode.ts +20 -7
- package/src/core/AudioBufferSourceNode.ts +2 -8
- package/src/core/AudioScheduledSourceNode.ts +11 -3
- package/src/interfaces.ts +2 -5
- package/src/plugin/withAudioAPI.ts +1 -1
- package/src/specs/NativeAudioAPIModule.ts +4 -1
- package/src/system/AudioManager.ts +10 -1
- package/src/system/types.ts +14 -0
- package/android/src/main/res/drawable/skip_backward_10.xml +0 -9
- package/android/src/main/res/drawable/skip_forward_10.xml +0 -9
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#include <gmock/gmock.h>
|
|
4
|
+
#include <audioapi/events/IAudioEventHandlerRegistry.h>
|
|
5
|
+
#include <unordered_map>
|
|
6
|
+
#include <string>
|
|
7
|
+
#include <memory>
|
|
8
|
+
|
|
9
|
+
using EventMap = std::unordered_map<std::string, audioapi::EventValue>;
|
|
10
|
+
|
|
11
|
+
class MockAudioEventHandlerRegistry : public audioapi::IAudioEventHandlerRegistry {
|
|
12
|
+
public:
|
|
13
|
+
MOCK_METHOD(uint64_t, registerHandler,
|
|
14
|
+
(const std::string &eventName, const std::shared_ptr<facebook::jsi::Function> &handler), (override));
|
|
15
|
+
MOCK_METHOD(void, unregisterHandler,
|
|
16
|
+
(const std::string &eventName, uint64_t listenerId), (override));
|
|
17
|
+
|
|
18
|
+
MOCK_METHOD(void, invokeHandlerWithEventBody,
|
|
19
|
+
(const std::string &eventName, const EventMap &body), (override));
|
|
20
|
+
MOCK_METHOD(void, invokeHandlerWithEventBody,
|
|
21
|
+
(const std::string &eventName, uint64_t listenerId, const EventMap &body), (override));
|
|
22
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
#include <audioapi/core/OfflineAudioContext.h>
|
|
2
|
+
#include <audioapi/core/sources/OscillatorNode.h>
|
|
3
|
+
#include <gtest/gtest.h>
|
|
4
|
+
#include "MockAudioEventHandlerRegistry.h"
|
|
5
|
+
|
|
6
|
+
class OscillatorTest : public ::testing::Test {
|
|
7
|
+
protected:
|
|
8
|
+
std::shared_ptr<audioapi::IAudioEventHandlerRegistry> eventRegistry;
|
|
9
|
+
std::unique_ptr<audioapi::OfflineAudioContext> context;
|
|
10
|
+
static constexpr int sampleRate = 44100;
|
|
11
|
+
|
|
12
|
+
void SetUp() override {
|
|
13
|
+
eventRegistry = std::make_shared<MockAudioEventHandlerRegistry>();
|
|
14
|
+
context = std::make_unique<audioapi::OfflineAudioContext>(
|
|
15
|
+
2, 5 * sampleRate, sampleRate, eventRegistry);
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
TEST_F(OscillatorTest, OscillatorCanBeCreated) {
|
|
20
|
+
auto osc = context->createOscillator();
|
|
21
|
+
ASSERT_NE(osc, nullptr);
|
|
22
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
set -e
|
|
4
|
+
|
|
5
|
+
cleanup() {
|
|
6
|
+
echo "Cleaning up..."
|
|
7
|
+
rm -rf build/
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
trap cleanup EXIT
|
|
11
|
+
# Step 1: Move to the script's directory
|
|
12
|
+
cd packages/react-native-audio-api/common/cpp/test
|
|
13
|
+
# Step 2: Configure CMake project
|
|
14
|
+
# mkdir build
|
|
15
|
+
cmake -S . -B build
|
|
16
|
+
|
|
17
|
+
# Step 3: Build the project
|
|
18
|
+
cmake --build build
|
|
19
|
+
|
|
20
|
+
# Step 4: Run the test binary
|
|
21
|
+
cd build
|
|
22
|
+
./tests
|
|
23
|
+
cd ..
|
|
24
|
+
|
|
25
|
+
# Step 5: Clean up build directory
|
|
26
|
+
rm -rf build/
|
|
@@ -85,9 +85,8 @@ RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(getDevicePreferredSampleRate)
|
|
|
85
85
|
return [self.audioSessionManager getDevicePreferredSampleRate];
|
|
86
86
|
}
|
|
87
87
|
|
|
88
|
-
RCT_EXPORT_METHOD(
|
|
89
|
-
|
|
90
|
-
reject)
|
|
88
|
+
RCT_EXPORT_METHOD(setAudioSessionActivity : (BOOL)enabled resolve : (RCTPromiseResolveBlock)
|
|
89
|
+
resolve reject : (RCTPromiseRejectBlock)reject)
|
|
91
90
|
{
|
|
92
91
|
if ([self.audioSessionManager setActive:enabled]) {
|
|
93
92
|
resolve(@"true");
|
|
@@ -97,9 +96,8 @@ RCT_EXPORT_METHOD(
|
|
|
97
96
|
resolve(@"false");
|
|
98
97
|
}
|
|
99
98
|
|
|
100
|
-
RCT_EXPORT_METHOD(
|
|
101
|
-
|
|
102
|
-
options allowHaptics : (BOOL)allowHaptics)
|
|
99
|
+
RCT_EXPORT_METHOD(setAudioSessionOptions : (NSString *)category mode : (NSString *)mode options : (NSArray *)
|
|
100
|
+
options allowHaptics : (BOOL)allowHaptics)
|
|
103
101
|
{
|
|
104
102
|
[self.audioSessionManager setAudioSessionOptions:category mode:mode options:options allowHaptics:allowHaptics];
|
|
105
103
|
}
|
|
@@ -129,19 +127,24 @@ RCT_EXPORT_METHOD(observeVolumeChanges : (BOOL)enabled)
|
|
|
129
127
|
[self.notificationManager observeVolumeChanges:(BOOL)enabled];
|
|
130
128
|
}
|
|
131
129
|
|
|
132
|
-
RCT_EXPORT_METHOD(
|
|
133
|
-
|
|
134
|
-
reject)
|
|
130
|
+
RCT_EXPORT_METHOD(requestRecordingPermissions : (nonnull RCTPromiseResolveBlock)
|
|
131
|
+
resolve reject : (nonnull RCTPromiseRejectBlock)reject)
|
|
135
132
|
{
|
|
136
133
|
[self.audioSessionManager requestRecordingPermissions:resolve reject:reject];
|
|
137
134
|
}
|
|
138
135
|
|
|
139
|
-
RCT_EXPORT_METHOD(
|
|
140
|
-
|
|
136
|
+
RCT_EXPORT_METHOD(checkRecordingPermissions : (nonnull RCTPromiseResolveBlock)
|
|
137
|
+
resolve reject : (nonnull RCTPromiseRejectBlock)reject)
|
|
141
138
|
{
|
|
142
139
|
[self.audioSessionManager checkRecordingPermissions:resolve reject:reject];
|
|
143
140
|
}
|
|
144
141
|
|
|
142
|
+
RCT_EXPORT_METHOD(getDevicesInfo : (nonnull RCTPromiseResolveBlock)resolve reject : (nonnull RCTPromiseRejectBlock)
|
|
143
|
+
reject)
|
|
144
|
+
{
|
|
145
|
+
[self.audioSessionManager getDevicesInfo:resolve reject:reject];
|
|
146
|
+
}
|
|
147
|
+
|
|
145
148
|
#ifdef RCT_NEW_ARCH_ENABLED
|
|
146
149
|
- (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
|
|
147
150
|
(const facebook::react::ObjCTurboModule::InitParams &)params
|
|
@@ -177,7 +180,9 @@ RCT_EXPORT_METHOD(
|
|
|
177
180
|
}
|
|
178
181
|
}
|
|
179
182
|
|
|
180
|
-
_eventHandler
|
|
183
|
+
if (_eventHandler != nullptr) {
|
|
184
|
+
_eventHandler->invokeHandlerWithEventBody(name, body);
|
|
185
|
+
}
|
|
181
186
|
}
|
|
182
187
|
|
|
183
188
|
@end
|
|
@@ -8,8 +8,11 @@
|
|
|
8
8
|
|
|
9
9
|
namespace audioapi {
|
|
10
10
|
|
|
11
|
-
IOSAudioPlayer::IOSAudioPlayer(
|
|
12
|
-
|
|
11
|
+
IOSAudioPlayer::IOSAudioPlayer(
|
|
12
|
+
const std::function<void(std::shared_ptr<AudioBus>, int)> &renderAudio,
|
|
13
|
+
float sampleRate,
|
|
14
|
+
int channelCount)
|
|
15
|
+
: renderAudio_(renderAudio), channelCount_(channelCount), audioBus_(0), isRunning_(false)
|
|
13
16
|
{
|
|
14
17
|
RenderAudioBlock renderAudioBlock = ^(AudioBufferList *outputData, int numFrames) {
|
|
15
18
|
int processedFrames = 0;
|
|
@@ -26,7 +26,11 @@
|
|
|
26
26
|
options:(NSArray *)options
|
|
27
27
|
allowHaptics:(BOOL)allowHaptics;
|
|
28
28
|
- (bool)setActive:(bool)active;
|
|
29
|
+
|
|
29
30
|
- (void)requestRecordingPermissions:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject;
|
|
30
31
|
- (void)checkRecordingPermissions:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject;
|
|
31
32
|
|
|
33
|
+
- (void)getDevicesInfo:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject;
|
|
34
|
+
- (NSArray<NSDictionary *> *)parseDeviceList:(NSArray<AVAudioSessionPortDescription *> *)devices;
|
|
35
|
+
|
|
32
36
|
@end
|
|
@@ -292,4 +292,30 @@
|
|
|
292
292
|
}
|
|
293
293
|
}
|
|
294
294
|
|
|
295
|
+
- (void)getDevicesInfo:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject
|
|
296
|
+
{
|
|
297
|
+
NSMutableDictionary *devicesInfo = [[NSMutableDictionary alloc] init];
|
|
298
|
+
|
|
299
|
+
[devicesInfo setValue:[self parseDeviceList:[self.audioSession availableInputs]] forKey:@"availableInputs"];
|
|
300
|
+
[devicesInfo setValue:[self parseDeviceList:[[self.audioSession currentRoute] inputs]] forKey:@"currentInputs"];
|
|
301
|
+
[devicesInfo setValue:[self parseDeviceList:[[self.audioSession currentRoute] outputs]] forKey:@"availableOutputs"];
|
|
302
|
+
[devicesInfo setValue:[self parseDeviceList:[[self.audioSession currentRoute] outputs]] forKey:@"currentOutputs"];
|
|
303
|
+
|
|
304
|
+
resolve(devicesInfo);
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
- (NSArray<NSDictionary *> *)parseDeviceList:(NSArray<AVAudioSessionPortDescription *> *)devices
|
|
308
|
+
{
|
|
309
|
+
NSMutableArray<NSDictionary *> *deviceList = [[NSMutableArray alloc] init];
|
|
310
|
+
|
|
311
|
+
for (AVAudioSessionPortDescription *device in devices) {
|
|
312
|
+
[deviceList addObject:@{
|
|
313
|
+
@"name" : device.portName,
|
|
314
|
+
@"category" : device.portType,
|
|
315
|
+
}];
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
return deviceList;
|
|
319
|
+
}
|
|
320
|
+
|
|
295
321
|
@end
|
|
@@ -189,8 +189,10 @@
|
|
|
189
189
|
} else if ([name isEqual:@"remotePreviousTrack"]) {
|
|
190
190
|
[self enableCommand:remoteCenter.previousTrackCommand withSelector:@selector(onPreviousTrack:) enabled:enabled];
|
|
191
191
|
} else if ([name isEqual:@"remoteSkipForward"]) {
|
|
192
|
+
remoteCenter.skipForwardCommand.preferredIntervals = @[ @15 ];
|
|
192
193
|
[self enableCommand:remoteCenter.skipForwardCommand withSelector:@selector(onSkipForward:) enabled:enabled];
|
|
193
194
|
} else if ([name isEqual:@"remoteSkipBackward"]) {
|
|
195
|
+
remoteCenter.skipBackwardCommand.preferredIntervals = @[ @15 ];
|
|
194
196
|
[self enableCommand:remoteCenter.skipBackwardCommand withSelector:@selector(onSkipBackward:) enabled:enabled];
|
|
195
197
|
} else if ([name isEqual:@"remoteSeekForward"]) {
|
|
196
198
|
[self enableCommand:remoteCenter.seekForwardCommand withSelector:@selector(onSeekForward:) enabled:enabled];
|
|
@@ -4,8 +4,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
var _AudioScheduledSourceNode = _interopRequireDefault(require("./AudioScheduledSourceNode"));
|
|
8
7
|
var _AudioParam = _interopRequireDefault(require("./AudioParam"));
|
|
8
|
+
var _AudioScheduledSourceNode = _interopRequireDefault(require("./AudioScheduledSourceNode"));
|
|
9
9
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
10
|
class AudioBufferBaseSourceNode extends _AudioScheduledSourceNode.default {
|
|
11
11
|
constructor(context, node) {
|
|
@@ -13,20 +13,24 @@ class AudioBufferBaseSourceNode extends _AudioScheduledSourceNode.default {
|
|
|
13
13
|
this.detune = new _AudioParam.default(node.detune, context);
|
|
14
14
|
this.playbackRate = new _AudioParam.default(node.playbackRate, context);
|
|
15
15
|
}
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
get onPositionChanged() {
|
|
17
|
+
return this.positionChangedCallback;
|
|
18
|
+
}
|
|
18
19
|
set onPositionChanged(callback) {
|
|
19
20
|
if (!callback) {
|
|
21
|
+
this.node.onPositionChanged = '0';
|
|
20
22
|
this.positionChangedSubscription?.remove();
|
|
21
23
|
this.positionChangedSubscription = undefined;
|
|
22
|
-
this.
|
|
24
|
+
this.positionChangedCallback = undefined;
|
|
23
25
|
return;
|
|
24
26
|
}
|
|
27
|
+
this.positionChangedCallback = callback;
|
|
25
28
|
this.positionChangedSubscription = this.audioEventEmitter.addAudioEventListener('positionChanged', callback);
|
|
26
29
|
this.node.onPositionChanged = this.positionChangedSubscription.subscriptionId;
|
|
27
30
|
}
|
|
28
|
-
|
|
29
|
-
|
|
31
|
+
get onPositionChangedInterval() {
|
|
32
|
+
return this.node.onPositionChangedInterval;
|
|
33
|
+
}
|
|
30
34
|
set onPositionChangedInterval(value) {
|
|
31
35
|
this.node.onPositionChangedInterval = value;
|
|
32
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["_AudioParam","_interopRequireDefault","require","_AudioScheduledSourceNode","e","__esModule","default","AudioBufferBaseSourceNode","AudioScheduledSourceNode","constructor","context","node","detune","AudioParam","playbackRate","onPositionChanged","positionChangedCallback","callback","positionChangedSubscription","remove","undefined","audioEventEmitter","addAudioEventListener","subscriptionId","onPositionChangedInterval","value","exports"],"sourceRoot":"../../../src","sources":["core/AudioBufferBaseSourceNode.ts"],"mappings":";;;;;;AAAA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AAKA,IAAAC,yBAAA,GAAAF,sBAAA,CAAAC,OAAA;AAAkE,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEnD,MAAMG,yBAAyB,SAASC,iCAAwB,CAAC;EAM9EC,WAAWA,CAACC,OAAyB,EAAEC,IAAgC,EAAE;IACvE,KAAK,CAACD,OAAO,EAAEC,IAAI,CAAC;IAEpB,IAAI,CAACC,MAAM,GAAG,IAAIC,mBAAU,CAACF,IAAI,CAACC,MAAM,EAAEF,OAAO,CAAC;IAClD,IAAI,CAACI,YAAY,GAAG,IAAID,mBAAU,CAACF,IAAI,CAACG,YAAY,EAAEJ,OAAO,CAAC;EAChE;EAEA,IAAWK,iBAAiBA,CAAA,EAEd;IACZ,OAAO,IAAI,CAACC,uBAAuB;EACrC;EAEA,IAAWD,iBAAiBA,CAC1BE,QAAsD,EACtD;IACA,IAAI,CAACA,QAAQ,EAAE;MACZ,IAAI,CAACN,IAAI,CAAgCI,iBAAiB,GAAG,GAAG;MACjE,IAAI,CAACG,2BAA2B,EAAEC,MAAM,CAAC,CAAC;MAC1C,IAAI,CAACD,2BAA2B,GAAGE,SAAS;MAC5C,IAAI,CAACJ,uBAAuB,GAAGI,SAAS;MAExC;IACF;IAEA,IAAI,CAACJ,uBAAuB,GAAGC,QAAQ;IACvC,IAAI,CAACC,2BAA2B,GAC9B,IAAI,CAACG,iBAAiB,CAACC,qBAAqB,CAAC,iBAAiB,EAAEL,QAAQ,CAAC;IAE1E,IAAI,CAACN,IAAI,CAAgCI,iBAAiB,GACzD,IAAI,CAACG,2BAA2B,CAACK,cAAc;EACnD;EAEA,IAAWC,yBAAyBA,CAAA,EAAW;IAC7C,OAAQ,IAAI,CAACb,IAAI,CAAgCa,yBAAyB;EAC5E;EAEA,IAAWA,yBAAyBA,CAACC,KAAa,EAAE;IACjD,IAAI,CAACd,IAAI,CAAgCa,yBAAyB,GAAGC,KAAK;EAC7E;AACF;AAACC,OAAA,CAAApB,OAAA,GAAAC,yBAAA","ignoreList":[]}
|
|
@@ -18,10 +18,10 @@ class AudioBufferSourceNode extends _AudioBufferBaseSourceNode.default {
|
|
|
18
18
|
}
|
|
19
19
|
set buffer(buffer) {
|
|
20
20
|
if (!buffer) {
|
|
21
|
-
this.node.setBuffer(
|
|
21
|
+
this.node.setBuffer(null);
|
|
22
22
|
return;
|
|
23
23
|
}
|
|
24
|
-
this.node.setBuffer(
|
|
24
|
+
this.node.setBuffer(buffer.buffer);
|
|
25
25
|
}
|
|
26
26
|
get loopSkip() {
|
|
27
27
|
return this.node.loopSkip;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_AudioBufferBaseSourceNode","_interopRequireDefault","require","_AudioBuffer","_errors","e","__esModule","default","AudioBufferSourceNode","AudioBufferBaseSourceNode","buffer","node","AudioBuffer","setBuffer","loopSkip","value","loop","loopStart","loopEnd","start","when","offset","duration","RangeError","hasBeenStarted","InvalidStateError","exports"],"sourceRoot":"../../../src","sources":["core/AudioBufferSourceNode.ts"],"mappings":";;;;;;AACA,IAAAA,0BAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AAA0D,SAAAD,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE3C,MAAMG,qBAAqB,SAASC,kCAAyB,CAAC;EAC3E,IAAWC,MAAMA,CAAA,EAAuB;IACtC,MAAMA,MAAM,GAAI,IAAI,CAACC,IAAI,CAA4BD,MAAM;IAC3D,IAAI,CAACA,MAAM,EAAE;MACX,OAAO,IAAI;IACb;IACA,OAAO,IAAIE,oBAAW,CAACF,MAAM,CAAC;EAChC;EAEA,IAAWA,MAAMA,CAACA,MAA0B,EAAE;IAC5C,IAAI,CAACA,MAAM,EAAE;MACV,IAAI,CAACC,IAAI,CAA4BE,SAAS,
|
|
1
|
+
{"version":3,"names":["_AudioBufferBaseSourceNode","_interopRequireDefault","require","_AudioBuffer","_errors","e","__esModule","default","AudioBufferSourceNode","AudioBufferBaseSourceNode","buffer","node","AudioBuffer","setBuffer","loopSkip","value","loop","loopStart","loopEnd","start","when","offset","duration","RangeError","hasBeenStarted","InvalidStateError","exports"],"sourceRoot":"../../../src","sources":["core/AudioBufferSourceNode.ts"],"mappings":";;;;;;AACA,IAAAA,0BAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AAA0D,SAAAD,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE3C,MAAMG,qBAAqB,SAASC,kCAAyB,CAAC;EAC3E,IAAWC,MAAMA,CAAA,EAAuB;IACtC,MAAMA,MAAM,GAAI,IAAI,CAACC,IAAI,CAA4BD,MAAM;IAC3D,IAAI,CAACA,MAAM,EAAE;MACX,OAAO,IAAI;IACb;IACA,OAAO,IAAIE,oBAAW,CAACF,MAAM,CAAC;EAChC;EAEA,IAAWA,MAAMA,CAACA,MAA0B,EAAE;IAC5C,IAAI,CAACA,MAAM,EAAE;MACV,IAAI,CAACC,IAAI,CAA4BE,SAAS,CAAC,IAAI,CAAC;MACrD;IACF;IAEC,IAAI,CAACF,IAAI,CAA4BE,SAAS,CAACH,MAAM,CAACA,MAAM,CAAC;EAChE;EAEA,IAAWI,QAAQA,CAAA,EAAY;IAC7B,OAAQ,IAAI,CAACH,IAAI,CAA4BG,QAAQ;EACvD;EAEA,IAAWA,QAAQA,CAACC,KAAc,EAAE;IACjC,IAAI,CAACJ,IAAI,CAA4BG,QAAQ,GAAGC,KAAK;EACxD;EAEA,IAAWC,IAAIA,CAAA,EAAY;IACzB,OAAQ,IAAI,CAACL,IAAI,CAA4BK,IAAI;EACnD;EAEA,IAAWA,IAAIA,CAACD,KAAc,EAAE;IAC7B,IAAI,CAACJ,IAAI,CAA4BK,IAAI,GAAGD,KAAK;EACpD;EAEA,IAAWE,SAASA,CAAA,EAAW;IAC7B,OAAQ,IAAI,CAACN,IAAI,CAA4BM,SAAS;EACxD;EAEA,IAAWA,SAASA,CAACF,KAAa,EAAE;IACjC,IAAI,CAACJ,IAAI,CAA4BM,SAAS,GAAGF,KAAK;EACzD;EAEA,IAAWG,OAAOA,CAAA,EAAW;IAC3B,OAAQ,IAAI,CAACP,IAAI,CAA4BO,OAAO;EACtD;EAEA,IAAWA,OAAOA,CAACH,KAAa,EAAE;IAC/B,IAAI,CAACJ,IAAI,CAA4BO,OAAO,GAAGH,KAAK;EACvD;EAEOI,KAAKA,CAACC,IAAY,GAAG,CAAC,EAAEC,MAAc,GAAG,CAAC,EAAEC,QAAiB,EAAQ;IAC1E,IAAIF,IAAI,GAAG,CAAC,EAAE;MACZ,MAAM,IAAIG,kBAAU,CAClB,8CAA8CH,IAAI,EACpD,CAAC;IACH;IAEA,IAAIC,MAAM,GAAG,CAAC,EAAE;MACd,MAAM,IAAIE,kBAAU,CAClB,gDAAgDF,MAAM,EACxD,CAAC;IACH;IAEA,IAAIC,QAAQ,IAAIA,QAAQ,GAAG,CAAC,EAAE;MAC5B,MAAM,IAAIC,kBAAU,CAClB,kDAAkDD,QAAQ,EAC5D,CAAC;IACH;IAEA,IAAI,IAAI,CAACE,cAAc,EAAE;MACvB,MAAM,IAAIC,yBAAiB,CAAC,kCAAkC,CAAC;IACjE;IAEA,IAAI,CAACD,cAAc,GAAG,IAAI;IACzB,IAAI,CAACb,IAAI,CAA4BQ,KAAK,CAACC,IAAI,EAAEC,MAAM,EAAEC,QAAQ,CAAC;EACrE;AACF;AAACI,OAAA,CAAAnB,OAAA,GAAAC,qBAAA","ignoreList":[]}
|
|
@@ -30,16 +30,20 @@ class AudioScheduledSourceNode extends _AudioNode.default {
|
|
|
30
30
|
}
|
|
31
31
|
this.node.stop(when);
|
|
32
32
|
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
33
|
+
get onEnded() {
|
|
34
|
+
return this.onEndedCallback;
|
|
35
|
+
}
|
|
36
|
+
set onEnded(callback) {
|
|
36
37
|
if (!callback) {
|
|
38
|
+
this.node.onEnded = '0';
|
|
37
39
|
this.onendedSubscription?.remove();
|
|
38
40
|
this.onendedSubscription = undefined;
|
|
41
|
+
this.onEndedCallback = undefined;
|
|
39
42
|
return;
|
|
40
43
|
}
|
|
44
|
+
this.onEndedCallback = callback;
|
|
41
45
|
this.onendedSubscription = this.audioEventEmitter.addAudioEventListener('ended', callback);
|
|
42
|
-
this.node.
|
|
46
|
+
this.node.onEnded = this.onendedSubscription.subscriptionId;
|
|
43
47
|
}
|
|
44
48
|
}
|
|
45
49
|
exports.default = AudioScheduledSourceNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_AudioNode","_interopRequireDefault","require","_errors","_events","e","__esModule","default","AudioScheduledSourceNode","AudioNode","hasBeenStarted","audioEventEmitter","AudioEventEmitter","global","start","when","RangeError","InvalidStateError","node","stop","
|
|
1
|
+
{"version":3,"names":["_AudioNode","_interopRequireDefault","require","_errors","_events","e","__esModule","default","AudioScheduledSourceNode","AudioNode","hasBeenStarted","audioEventEmitter","AudioEventEmitter","global","start","when","RangeError","InvalidStateError","node","stop","onEnded","onEndedCallback","callback","onendedSubscription","remove","undefined","addAudioEventListener","subscriptionId","exports"],"sourceRoot":"../../../src","sources":["core/AudioScheduledSourceNode.ts"],"mappings":";;;;;;AACA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAEA,IAAAE,OAAA,GAAAF,OAAA;AAAsE,SAAAD,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEvD,MAAMG,wBAAwB,SAASC,kBAAS,CAAC;EACpDC,cAAc,GAAY,KAAK;EACtBC,iBAAiB,GAAG,IAAIC,yBAAiB,CAC1DC,MAAM,CAACD,iBACT,CAAC;EAKME,KAAKA,CAACC,IAAY,GAAG,CAAC,EAAQ;IACnC,IAAIA,IAAI,GAAG,CAAC,EAAE;MACZ,MAAM,IAAIC,kBAAU,CAClB,8CAA8CD,IAAI,EACpD,CAAC;IACH;IAEA,IAAI,IAAI,CAACL,cAAc,EAAE;MACvB,MAAM,IAAIO,yBAAiB,CAAC,kCAAkC,CAAC;IACjE;IAEA,IAAI,CAACP,cAAc,GAAG,IAAI;IACzB,IAAI,CAACQ,IAAI,CAA+BJ,KAAK,CAACC,IAAI,CAAC;EACtD;EAEOI,IAAIA,CAACJ,IAAY,GAAG,CAAC,EAAQ;IAClC,IAAIA,IAAI,GAAG,CAAC,EAAE;MACZ,MAAM,IAAIC,kBAAU,CAClB,8CAA8CD,IAAI,EACpD,CAAC;IACH;IAEA,IAAI,CAAC,IAAI,CAACL,cAAc,EAAE;MACxB,MAAM,IAAIO,yBAAiB,CACzB,8CACF,CAAC;IACH;IAEC,IAAI,CAACC,IAAI,CAA+BC,IAAI,CAACJ,IAAI,CAAC;EACrD;EAEA,IAAWK,OAAOA,CAAA,EAAkD;IAClE,OAAO,IAAI,CAACC,eAAe;EAC7B;EAEA,IAAWD,OAAOA,CAACE,QAAkD,EAAE;IACrE,IAAI,CAACA,QAAQ,EAAE;MACZ,IAAI,CAACJ,IAAI,CAA+BE,OAAO,GAAG,GAAG;MACtD,IAAI,CAACG,mBAAmB,EAAEC,MAAM,CAAC,CAAC;MAClC,IAAI,CAACD,mBAAmB,GAAGE,SAAS;MACpC,IAAI,CAACJ,eAAe,GAAGI,SAAS;MAChC;IACF;IAEA,IAAI,CAACJ,eAAe,GAAGC,QAAQ;IAC/B,IAAI,CAACC,mBAAmB,GAAG,IAAI,CAACZ,iBAAiB,CAACe,qBAAqB,CACrE,OAAO,EACPJ,QACF,CAAC;IAEA,IAAI,CAACJ,IAAI,CAA+BE,OAAO,GAC9C,IAAI,CAACG,mBAAmB,CAACI,cAAc;EAC3C;AACF;AAACC,OAAA,CAAArB,OAAA,GAAAC,wBAAA","ignoreList":[]}
|
|
@@ -9,7 +9,7 @@ const pkg = require('react-native-audio-api/package.json');
|
|
|
9
9
|
const withDefaultOptions = options => {
|
|
10
10
|
return {
|
|
11
11
|
iosBackgroundMode: true,
|
|
12
|
-
androidPermissions: ['android.permission.FOREGROUND_SERVICE', 'android.permission.
|
|
12
|
+
androidPermissions: ['android.permission.FOREGROUND_SERVICE', 'android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK'],
|
|
13
13
|
androidForegroundService: true,
|
|
14
14
|
androidFSTypes: ['mediaPlayback'],
|
|
15
15
|
...options
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_configPlugins","require","pkg","withDefaultOptions","options","iosBackgroundMode","androidPermissions","androidForegroundService","androidFSTypes","withBackgroundAudio","config","withInfoPlist","iosConfig","modResults","UIBackgroundModes","Array","from","Set","withAndroidPermissions","AndroidConfig","Permissions","withPermissions","withForegroundService","withAndroidManifest","mod","manifest","mainApplication","Manifest","getMainApplicationOrThrow","SFTypes","join","serviceElement","$","intentFilter","service","push","withAudioAPI","optionsIn","_default","exports","default","createRunOncePlugin","name","version"],"sourceRoot":"../../../src","sources":["plugin/withAudioAPI.ts"],"mappings":";;;;;;AAAA,IAAAA,cAAA,GAAAC,OAAA;AAOA,MAAMC,GAAG,GAAGD,OAAO,CAAC,qCAAqC,CAAC;AAS1D,MAAME,kBAAkB,GAAIC,OAAyB,IAAc;EACjE,OAAO;IACLC,iBAAiB,EAAE,IAAI;IACvBC,kBAAkB,EAAE,CAClB,uCAAuC,EACvC,
|
|
1
|
+
{"version":3,"names":["_configPlugins","require","pkg","withDefaultOptions","options","iosBackgroundMode","androidPermissions","androidForegroundService","androidFSTypes","withBackgroundAudio","config","withInfoPlist","iosConfig","modResults","UIBackgroundModes","Array","from","Set","withAndroidPermissions","AndroidConfig","Permissions","withPermissions","withForegroundService","withAndroidManifest","mod","manifest","mainApplication","Manifest","getMainApplicationOrThrow","SFTypes","join","serviceElement","$","intentFilter","service","push","withAudioAPI","optionsIn","_default","exports","default","createRunOncePlugin","name","version"],"sourceRoot":"../../../src","sources":["plugin/withAudioAPI.ts"],"mappings":";;;;;;AAAA,IAAAA,cAAA,GAAAC,OAAA;AAOA,MAAMC,GAAG,GAAGD,OAAO,CAAC,qCAAqC,CAAC;AAS1D,MAAME,kBAAkB,GAAIC,OAAyB,IAAc;EACjE,OAAO;IACLC,iBAAiB,EAAE,IAAI;IACvBC,kBAAkB,EAAE,CAClB,uCAAuC,EACvC,sDAAsD,CACvD;IACDC,wBAAwB,EAAE,IAAI;IAC9BC,cAAc,EAAE,CAAC,eAAe,CAAC;IACjC,GAAGJ;EACL,CAAC;AACH,CAAC;AAED,MAAMK,mBAAiC,GAAIC,MAAM,IAAK;EACpD,OAAO,IAAAC,4BAAa,EAACD,MAAM,EAAGE,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,sBAA6C,GAAGA,CACpDR,MAAM,EACN;EAAEJ;AAA4B,CAAC,KAC5B;EACH,OAAOa,4BAAa,CAACC,WAAW,CAACC,eAAe,CAACX,MAAM,EAAEJ,kBAAkB,CAAC;AAC9E,CAAC;AAED,MAAMgB,qBAA4C,GAAGA,CACnDZ,MAAM,EACN;EAAEF;AAAwB,CAAC,KACxB;EACH,OAAO,IAAAe,kCAAmB,EAACb,MAAM,EAAGc,GAAG,IAAK;IAC1C,MAAMC,QAAQ,GAAGD,GAAG,CAACX,UAAU;IAC/B,MAAMa,eAAe,GACnBP,4BAAa,CAACQ,QAAQ,CAACC,yBAAyB,CAACH,QAAQ,CAAC;IAE5D,MAAMI,OAAO,GAAGrB,cAAc,CAACsB,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,YAAmC,GAAGA,CAAC1B,MAAM,EAAE2B,SAAS,KAAK;EACjE,MAAMjC,OAAO,GAAGD,kBAAkB,CAACkC,SAAS,IAAI,CAAC,CAAC,CAAC;EAEnD,IAAIjC,OAAO,CAACC,iBAAiB,EAAE;IAC7BK,MAAM,GAAGD,mBAAmB,CAACC,MAAM,CAAC;EACtC;EAEAA,MAAM,GAAGQ,sBAAsB,CAACR,MAAM,EAAEN,OAAO,CAAC;EAEhD,IAAIA,OAAO,CAACG,wBAAwB,EAAE;IACpCG,MAAM,GAAGY,qBAAqB,CAACZ,MAAM,EAAEN,OAAO,CAAC;EACjD;EAEA,OAAOM,MAAM;AACf,CAAC;AAAC,IAAA4B,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEa,IAAAC,kCAAmB,EAACL,YAAY,EAAElC,GAAG,CAACwC,IAAI,EAAExC,GAAG,CAACyC,OAAO,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Object","defineProperty","exports","value","NativeAudioAPIModule","_reactNative","require","TurboModuleRegistry","get"],"sourceRoot":"../../../src","sources":["specs/NativeAudioAPIModule.ts"],"mappings":"AAAA,YAAY;;AAACA,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,KAAA;AAAA;AAAAD,OAAA,CAAAE,oBAAA;AACb,IAAAC,YAAA,GAAAC,OAAA;
|
|
1
|
+
{"version":3,"names":["Object","defineProperty","exports","value","NativeAudioAPIModule","_reactNative","require","TurboModuleRegistry","get"],"sourceRoot":"../../../src","sources":["specs/NativeAudioAPIModule.ts"],"mappings":"AAAA,YAAY;;AAACA,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,KAAA;AAAA;AAAAD,OAAA,CAAAE,oBAAA;AACb,IAAAC,YAAA,GAAAC,OAAA;AAoCA,MAAMF,oBAAoB,GAAAF,OAAA,CAAAE,oBAAA,GAAGG,gCAAmB,CAACC,GAAG,CAAO,gBAAgB,CAAC","ignoreList":[]}
|
|
@@ -49,6 +49,9 @@ class AudioManager {
|
|
|
49
49
|
async checkRecordingPermissions() {
|
|
50
50
|
return _specs.NativeAudioAPIModule.checkRecordingPermissions();
|
|
51
51
|
}
|
|
52
|
+
async getDevicesInfo() {
|
|
53
|
+
return _specs.NativeAudioAPIModule.getDevicesInfo();
|
|
54
|
+
}
|
|
52
55
|
}
|
|
53
56
|
var _default = exports.default = new AudioManager();
|
|
54
57
|
//# sourceMappingURL=AudioManager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_specs","require","_events","global","AudioEventEmitter","NativeAudioAPIModule","Error","install","AudioManager","constructor","audioEventEmitter","getDevicePreferredSampleRate","setAudioSessionActivity","enabled","setAudioSessionOptions","options","iosCategory","iosMode","iosOptions","iosAllowHaptics","setLockScreenInfo","info","resetLockScreenInfo","observeAudioInterruptions","observeVolumeChanges","enableRemoteCommand","name","addSystemEventListener","callback","addAudioEventListener","requestRecordingPermissions","checkRecordingPermissions","_default","exports","default"],"sourceRoot":"../../../src","sources":["system/AudioManager.ts"],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"names":["_specs","require","_events","global","AudioEventEmitter","NativeAudioAPIModule","Error","install","AudioManager","constructor","audioEventEmitter","getDevicePreferredSampleRate","setAudioSessionActivity","enabled","setAudioSessionOptions","options","iosCategory","iosMode","iosOptions","iosAllowHaptics","setLockScreenInfo","info","resetLockScreenInfo","observeAudioInterruptions","observeVolumeChanges","enableRemoteCommand","name","addSystemEventListener","callback","addAudioEventListener","requestRecordingPermissions","checkRecordingPermissions","getDevicesInfo","_default","exports","default"],"sourceRoot":"../../../src","sources":["system/AudioManager.ts"],"mappings":";;;;;;AAWA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAEA,IAAIE,MAAM,CAACC,iBAAiB,IAAI,IAAI,EAAE;EACpC,IAAI,CAACC,2BAAoB,EAAE;IACzB,MAAM,IAAIC,KAAK,CACb,iFACF,CAAC;EACH;EAEAD,2BAAoB,CAACE,OAAO,CAAC,CAAC;AAChC;AAEA,MAAMC,YAAY,CAAC;EAEjBC,WAAWA,CAAA,EAAG;IACZ,IAAI,CAACC,iBAAiB,GAAG,IAAIN,yBAAiB,CAACD,MAAM,CAACC,iBAAiB,CAAC;EAC1E;EAEAO,4BAA4BA,CAAA,EAAW;IACrC,OAAON,2BAAoB,CAAEM,4BAA4B,CAAC,CAAC;EAC7D;EAEAC,uBAAuBA,CAACC,OAAgB,EAAoB;IAC1D,OAAOR,2BAAoB,CAAEO,uBAAuB,CAACC,OAAO,CAAC;EAC/D;EAEAC,sBAAsBA,CAACC,OAAuB,EAAE;IAC9CV,2BAAoB,CAAES,sBAAsB,CAC1CC,OAAO,CAACC,WAAW,IAAI,EAAE,EACzBD,OAAO,CAACE,OAAO,IAAI,EAAE,EACrBF,OAAO,CAACG,UAAU,IAAI,EAAE,EACxBH,OAAO,CAACI,eAAe,IAAI,KAC7B,CAAC;EACH;EAEAC,iBAAiBA,CAACC,IAAoB,EAAE;IACtChB,2BAAoB,CAAEe,iBAAiB,CAACC,IAAI,CAAC;EAC/C;EAEAC,mBAAmBA,CAAA,EAAG;IACpBjB,2BAAoB,CAAEiB,mBAAmB,CAAC,CAAC;EAC7C;EAEAC,yBAAyBA,CAACV,OAAgB,EAAE;IAC1CR,2BAAoB,CAAEkB,yBAAyB,CAACV,OAAO,CAAC;EAC1D;EAEAW,oBAAoBA,CAACX,OAAgB,EAAE;IACrCR,2BAAoB,CAAEmB,oBAAoB,CAACX,OAAO,CAAC;EACrD;EAEAY,mBAAmBA,CAACC,IAA4B,EAAEb,OAAgB,EAAE;IAClER,2BAAoB,CAAEoB,mBAAmB,CAACC,IAAI,EAAEb,OAAO,CAAC;EAC1D;EAEAc,sBAAsBA,CACpBD,IAAU,EACVE,QAAmC,EACX;IACxB,OAAO,IAAI,CAAClB,iBAAiB,CAACmB,qBAAqB,CAACH,IAAI,EAAEE,QAAQ,CAAC;EACrE;EAEA,MAAME,2BAA2BA,CAAA,EAA8B;IAC7D,OAAOzB,2BAAoB,CAAEyB,2BAA2B,CAAC,CAAC;EAC5D;EAEA,MAAMC,yBAAyBA,CAAA,EAA8B;IAC3D,OAAO1B,2BAAoB,CAAE0B,yBAAyB,CAAC,CAAC;EAC1D;EAEA,MAAMC,cAAcA,CAAA,EAA8B;IAChD,OAAO3B,2BAAoB,CAAE2B,cAAc,CAAC,CAAC;EAC/C;AACF;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEc,IAAI3B,YAAY,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1,27 +1,31 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import AudioScheduledSourceNode from "./AudioScheduledSourceNode.js";
|
|
4
3
|
import AudioParam from "./AudioParam.js";
|
|
4
|
+
import AudioScheduledSourceNode from "./AudioScheduledSourceNode.js";
|
|
5
5
|
export default class AudioBufferBaseSourceNode extends AudioScheduledSourceNode {
|
|
6
6
|
constructor(context, node) {
|
|
7
7
|
super(context, node);
|
|
8
8
|
this.detune = new AudioParam(node.detune, context);
|
|
9
9
|
this.playbackRate = new AudioParam(node.playbackRate, context);
|
|
10
10
|
}
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
get onPositionChanged() {
|
|
12
|
+
return this.positionChangedCallback;
|
|
13
|
+
}
|
|
13
14
|
set onPositionChanged(callback) {
|
|
14
15
|
if (!callback) {
|
|
16
|
+
this.node.onPositionChanged = '0';
|
|
15
17
|
this.positionChangedSubscription?.remove();
|
|
16
18
|
this.positionChangedSubscription = undefined;
|
|
17
|
-
this.
|
|
19
|
+
this.positionChangedCallback = undefined;
|
|
18
20
|
return;
|
|
19
21
|
}
|
|
22
|
+
this.positionChangedCallback = callback;
|
|
20
23
|
this.positionChangedSubscription = this.audioEventEmitter.addAudioEventListener('positionChanged', callback);
|
|
21
24
|
this.node.onPositionChanged = this.positionChangedSubscription.subscriptionId;
|
|
22
25
|
}
|
|
23
|
-
|
|
24
|
-
|
|
26
|
+
get onPositionChangedInterval() {
|
|
27
|
+
return this.node.onPositionChangedInterval;
|
|
28
|
+
}
|
|
25
29
|
set onPositionChangedInterval(value) {
|
|
26
30
|
this.node.onPositionChangedInterval = value;
|
|
27
31
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["AudioParam","AudioScheduledSourceNode","AudioBufferBaseSourceNode","constructor","context","node","detune","playbackRate","onPositionChanged","positionChangedCallback","callback","positionChangedSubscription","remove","undefined","audioEventEmitter","addAudioEventListener","subscriptionId","onPositionChangedInterval","value"],"sourceRoot":"../../../src","sources":["core/AudioBufferBaseSourceNode.ts"],"mappings":";;AAAA,OAAOA,UAAU,MAAM,iBAAc;AAKrC,OAAOC,wBAAwB,MAAM,+BAA4B;AAEjE,eAAe,MAAMC,yBAAyB,SAASD,wBAAwB,CAAC;EAM9EE,WAAWA,CAACC,OAAyB,EAAEC,IAAgC,EAAE;IACvE,KAAK,CAACD,OAAO,EAAEC,IAAI,CAAC;IAEpB,IAAI,CAACC,MAAM,GAAG,IAAIN,UAAU,CAACK,IAAI,CAACC,MAAM,EAAEF,OAAO,CAAC;IAClD,IAAI,CAACG,YAAY,GAAG,IAAIP,UAAU,CAACK,IAAI,CAACE,YAAY,EAAEH,OAAO,CAAC;EAChE;EAEA,IAAWI,iBAAiBA,CAAA,EAEd;IACZ,OAAO,IAAI,CAACC,uBAAuB;EACrC;EAEA,IAAWD,iBAAiBA,CAC1BE,QAAsD,EACtD;IACA,IAAI,CAACA,QAAQ,EAAE;MACZ,IAAI,CAACL,IAAI,CAAgCG,iBAAiB,GAAG,GAAG;MACjE,IAAI,CAACG,2BAA2B,EAAEC,MAAM,CAAC,CAAC;MAC1C,IAAI,CAACD,2BAA2B,GAAGE,SAAS;MAC5C,IAAI,CAACJ,uBAAuB,GAAGI,SAAS;MAExC;IACF;IAEA,IAAI,CAACJ,uBAAuB,GAAGC,QAAQ;IACvC,IAAI,CAACC,2BAA2B,GAC9B,IAAI,CAACG,iBAAiB,CAACC,qBAAqB,CAAC,iBAAiB,EAAEL,QAAQ,CAAC;IAE1E,IAAI,CAACL,IAAI,CAAgCG,iBAAiB,GACzD,IAAI,CAACG,2BAA2B,CAACK,cAAc;EACnD;EAEA,IAAWC,yBAAyBA,CAAA,EAAW;IAC7C,OAAQ,IAAI,CAACZ,IAAI,CAAgCY,yBAAyB;EAC5E;EAEA,IAAWA,yBAAyBA,CAACC,KAAa,EAAE;IACjD,IAAI,CAACb,IAAI,CAAgCY,yBAAyB,GAAGC,KAAK;EAC7E;AACF","ignoreList":[]}
|
|
@@ -13,10 +13,10 @@ export default class AudioBufferSourceNode extends AudioBufferBaseSourceNode {
|
|
|
13
13
|
}
|
|
14
14
|
set buffer(buffer) {
|
|
15
15
|
if (!buffer) {
|
|
16
|
-
this.node.setBuffer(
|
|
16
|
+
this.node.setBuffer(null);
|
|
17
17
|
return;
|
|
18
18
|
}
|
|
19
|
-
this.node.setBuffer(
|
|
19
|
+
this.node.setBuffer(buffer.buffer);
|
|
20
20
|
}
|
|
21
21
|
get loopSkip() {
|
|
22
22
|
return this.node.loopSkip;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["AudioBufferBaseSourceNode","AudioBuffer","InvalidStateError","RangeError","AudioBufferSourceNode","buffer","node","setBuffer","loopSkip","value","loop","loopStart","loopEnd","start","when","offset","duration","hasBeenStarted"],"sourceRoot":"../../../src","sources":["core/AudioBufferSourceNode.ts"],"mappings":";;AACA,OAAOA,yBAAyB,MAAM,gCAA6B;AACnE,OAAOC,WAAW,MAAM,kBAAe;AACvC,SAASC,iBAAiB,EAAEC,UAAU,QAAQ,oBAAW;AAEzD,eAAe,MAAMC,qBAAqB,SAASJ,yBAAyB,CAAC;EAC3E,IAAWK,MAAMA,CAAA,EAAuB;IACtC,MAAMA,MAAM,GAAI,IAAI,CAACC,IAAI,CAA4BD,MAAM;IAC3D,IAAI,CAACA,MAAM,EAAE;MACX,OAAO,IAAI;IACb;IACA,OAAO,IAAIJ,WAAW,CAACI,MAAM,CAAC;EAChC;EAEA,IAAWA,MAAMA,CAACA,MAA0B,EAAE;IAC5C,IAAI,CAACA,MAAM,EAAE;MACV,IAAI,CAACC,IAAI,CAA4BC,SAAS,
|
|
1
|
+
{"version":3,"names":["AudioBufferBaseSourceNode","AudioBuffer","InvalidStateError","RangeError","AudioBufferSourceNode","buffer","node","setBuffer","loopSkip","value","loop","loopStart","loopEnd","start","when","offset","duration","hasBeenStarted"],"sourceRoot":"../../../src","sources":["core/AudioBufferSourceNode.ts"],"mappings":";;AACA,OAAOA,yBAAyB,MAAM,gCAA6B;AACnE,OAAOC,WAAW,MAAM,kBAAe;AACvC,SAASC,iBAAiB,EAAEC,UAAU,QAAQ,oBAAW;AAEzD,eAAe,MAAMC,qBAAqB,SAASJ,yBAAyB,CAAC;EAC3E,IAAWK,MAAMA,CAAA,EAAuB;IACtC,MAAMA,MAAM,GAAI,IAAI,CAACC,IAAI,CAA4BD,MAAM;IAC3D,IAAI,CAACA,MAAM,EAAE;MACX,OAAO,IAAI;IACb;IACA,OAAO,IAAIJ,WAAW,CAACI,MAAM,CAAC;EAChC;EAEA,IAAWA,MAAMA,CAACA,MAA0B,EAAE;IAC5C,IAAI,CAACA,MAAM,EAAE;MACV,IAAI,CAACC,IAAI,CAA4BC,SAAS,CAAC,IAAI,CAAC;MACrD;IACF;IAEC,IAAI,CAACD,IAAI,CAA4BC,SAAS,CAACF,MAAM,CAACA,MAAM,CAAC;EAChE;EAEA,IAAWG,QAAQA,CAAA,EAAY;IAC7B,OAAQ,IAAI,CAACF,IAAI,CAA4BE,QAAQ;EACvD;EAEA,IAAWA,QAAQA,CAACC,KAAc,EAAE;IACjC,IAAI,CAACH,IAAI,CAA4BE,QAAQ,GAAGC,KAAK;EACxD;EAEA,IAAWC,IAAIA,CAAA,EAAY;IACzB,OAAQ,IAAI,CAACJ,IAAI,CAA4BI,IAAI;EACnD;EAEA,IAAWA,IAAIA,CAACD,KAAc,EAAE;IAC7B,IAAI,CAACH,IAAI,CAA4BI,IAAI,GAAGD,KAAK;EACpD;EAEA,IAAWE,SAASA,CAAA,EAAW;IAC7B,OAAQ,IAAI,CAACL,IAAI,CAA4BK,SAAS;EACxD;EAEA,IAAWA,SAASA,CAACF,KAAa,EAAE;IACjC,IAAI,CAACH,IAAI,CAA4BK,SAAS,GAAGF,KAAK;EACzD;EAEA,IAAWG,OAAOA,CAAA,EAAW;IAC3B,OAAQ,IAAI,CAACN,IAAI,CAA4BM,OAAO;EACtD;EAEA,IAAWA,OAAOA,CAACH,KAAa,EAAE;IAC/B,IAAI,CAACH,IAAI,CAA4BM,OAAO,GAAGH,KAAK;EACvD;EAEOI,KAAKA,CAACC,IAAY,GAAG,CAAC,EAAEC,MAAc,GAAG,CAAC,EAAEC,QAAiB,EAAQ;IAC1E,IAAIF,IAAI,GAAG,CAAC,EAAE;MACZ,MAAM,IAAIX,UAAU,CAClB,8CAA8CW,IAAI,EACpD,CAAC;IACH;IAEA,IAAIC,MAAM,GAAG,CAAC,EAAE;MACd,MAAM,IAAIZ,UAAU,CAClB,gDAAgDY,MAAM,EACxD,CAAC;IACH;IAEA,IAAIC,QAAQ,IAAIA,QAAQ,GAAG,CAAC,EAAE;MAC5B,MAAM,IAAIb,UAAU,CAClB,kDAAkDa,QAAQ,EAC5D,CAAC;IACH;IAEA,IAAI,IAAI,CAACC,cAAc,EAAE;MACvB,MAAM,IAAIf,iBAAiB,CAAC,kCAAkC,CAAC;IACjE;IAEA,IAAI,CAACe,cAAc,GAAG,IAAI;IACzB,IAAI,CAACX,IAAI,CAA4BO,KAAK,CAACC,IAAI,EAAEC,MAAM,EAAEC,QAAQ,CAAC;EACrE;AACF","ignoreList":[]}
|
|
@@ -25,16 +25,20 @@ export default class AudioScheduledSourceNode extends AudioNode {
|
|
|
25
25
|
}
|
|
26
26
|
this.node.stop(when);
|
|
27
27
|
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
get onEnded() {
|
|
29
|
+
return this.onEndedCallback;
|
|
30
|
+
}
|
|
31
|
+
set onEnded(callback) {
|
|
31
32
|
if (!callback) {
|
|
33
|
+
this.node.onEnded = '0';
|
|
32
34
|
this.onendedSubscription?.remove();
|
|
33
35
|
this.onendedSubscription = undefined;
|
|
36
|
+
this.onEndedCallback = undefined;
|
|
34
37
|
return;
|
|
35
38
|
}
|
|
39
|
+
this.onEndedCallback = callback;
|
|
36
40
|
this.onendedSubscription = this.audioEventEmitter.addAudioEventListener('ended', callback);
|
|
37
|
-
this.node.
|
|
41
|
+
this.node.onEnded = this.onendedSubscription.subscriptionId;
|
|
38
42
|
}
|
|
39
43
|
}
|
|
40
44
|
//# sourceMappingURL=AudioScheduledSourceNode.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["AudioNode","InvalidStateError","RangeError","AudioEventEmitter","AudioScheduledSourceNode","hasBeenStarted","audioEventEmitter","global","start","when","node","stop","
|
|
1
|
+
{"version":3,"names":["AudioNode","InvalidStateError","RangeError","AudioEventEmitter","AudioScheduledSourceNode","hasBeenStarted","audioEventEmitter","global","start","when","node","stop","onEnded","onEndedCallback","callback","onendedSubscription","remove","undefined","addAudioEventListener","subscriptionId"],"sourceRoot":"../../../src","sources":["core/AudioScheduledSourceNode.ts"],"mappings":";;AACA,OAAOA,SAAS,MAAM,gBAAa;AACnC,SAASC,iBAAiB,EAAEC,UAAU,QAAQ,oBAAW;AAEzD,SAASC,iBAAiB,QAAgC,oBAAW;AAErE,eAAe,MAAMC,wBAAwB,SAASJ,SAAS,CAAC;EACpDK,cAAc,GAAY,KAAK;EACtBC,iBAAiB,GAAG,IAAIH,iBAAiB,CAC1DI,MAAM,CAACJ,iBACT,CAAC;EAKMK,KAAKA,CAACC,IAAY,GAAG,CAAC,EAAQ;IACnC,IAAIA,IAAI,GAAG,CAAC,EAAE;MACZ,MAAM,IAAIP,UAAU,CAClB,8CAA8CO,IAAI,EACpD,CAAC;IACH;IAEA,IAAI,IAAI,CAACJ,cAAc,EAAE;MACvB,MAAM,IAAIJ,iBAAiB,CAAC,kCAAkC,CAAC;IACjE;IAEA,IAAI,CAACI,cAAc,GAAG,IAAI;IACzB,IAAI,CAACK,IAAI,CAA+BF,KAAK,CAACC,IAAI,CAAC;EACtD;EAEOE,IAAIA,CAACF,IAAY,GAAG,CAAC,EAAQ;IAClC,IAAIA,IAAI,GAAG,CAAC,EAAE;MACZ,MAAM,IAAIP,UAAU,CAClB,8CAA8CO,IAAI,EACpD,CAAC;IACH;IAEA,IAAI,CAAC,IAAI,CAACJ,cAAc,EAAE;MACxB,MAAM,IAAIJ,iBAAiB,CACzB,8CACF,CAAC;IACH;IAEC,IAAI,CAACS,IAAI,CAA+BC,IAAI,CAACF,IAAI,CAAC;EACrD;EAEA,IAAWG,OAAOA,CAAA,EAAkD;IAClE,OAAO,IAAI,CAACC,eAAe;EAC7B;EAEA,IAAWD,OAAOA,CAACE,QAAkD,EAAE;IACrE,IAAI,CAACA,QAAQ,EAAE;MACZ,IAAI,CAACJ,IAAI,CAA+BE,OAAO,GAAG,GAAG;MACtD,IAAI,CAACG,mBAAmB,EAAEC,MAAM,CAAC,CAAC;MAClC,IAAI,CAACD,mBAAmB,GAAGE,SAAS;MACpC,IAAI,CAACJ,eAAe,GAAGI,SAAS;MAChC;IACF;IAEA,IAAI,CAACJ,eAAe,GAAGC,QAAQ;IAC/B,IAAI,CAACC,mBAAmB,GAAG,IAAI,CAACT,iBAAiB,CAACY,qBAAqB,CACrE,OAAO,EACPJ,QACF,CAAC;IAEA,IAAI,CAACJ,IAAI,CAA+BE,OAAO,GAC9C,IAAI,CAACG,mBAAmB,CAACI,cAAc;EAC3C;AACF","ignoreList":[]}
|
|
@@ -5,7 +5,7 @@ const pkg = require('react-native-audio-api/package.json');
|
|
|
5
5
|
const withDefaultOptions = options => {
|
|
6
6
|
return {
|
|
7
7
|
iosBackgroundMode: true,
|
|
8
|
-
androidPermissions: ['android.permission.FOREGROUND_SERVICE', 'android.permission.
|
|
8
|
+
androidPermissions: ['android.permission.FOREGROUND_SERVICE', 'android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK'],
|
|
9
9
|
androidForegroundService: true,
|
|
10
10
|
androidFSTypes: ['mediaPlayback'],
|
|
11
11
|
...options
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["AndroidConfig","createRunOncePlugin","withInfoPlist","withAndroidManifest","pkg","require","withDefaultOptions","options","iosBackgroundMode","androidPermissions","androidForegroundService","androidFSTypes","withBackgroundAudio","config","iosConfig","modResults","UIBackgroundModes","Array","from","Set","withAndroidPermissions","Permissions","withPermissions","withForegroundService","mod","manifest","mainApplication","Manifest","getMainApplicationOrThrow","SFTypes","join","serviceElement","$","intentFilter","service","push","withAudioAPI","optionsIn","name","version"],"sourceRoot":"../../../src","sources":["plugin/withAudioAPI.ts"],"mappings":";;AAAA,SACEA,aAAa,EACbC,mBAAmB,EAEnBC,aAAa,EACbC,mBAAmB,QACd,sBAAsB;AAC7B,MAAMC,GAAG,GAAGC,OAAO,CAAC,qCAAqC,CAAC;AAS1D,MAAMC,kBAAkB,GAAIC,OAAyB,IAAc;EACjE,OAAO;IACLC,iBAAiB,EAAE,IAAI;IACvBC,kBAAkB,EAAE,CAClB,uCAAuC,EACvC,
|
|
1
|
+
{"version":3,"names":["AndroidConfig","createRunOncePlugin","withInfoPlist","withAndroidManifest","pkg","require","withDefaultOptions","options","iosBackgroundMode","androidPermissions","androidForegroundService","androidFSTypes","withBackgroundAudio","config","iosConfig","modResults","UIBackgroundModes","Array","from","Set","withAndroidPermissions","Permissions","withPermissions","withForegroundService","mod","manifest","mainApplication","Manifest","getMainApplicationOrThrow","SFTypes","join","serviceElement","$","intentFilter","service","push","withAudioAPI","optionsIn","name","version"],"sourceRoot":"../../../src","sources":["plugin/withAudioAPI.ts"],"mappings":";;AAAA,SACEA,aAAa,EACbC,mBAAmB,EAEnBC,aAAa,EACbC,mBAAmB,QACd,sBAAsB;AAC7B,MAAMC,GAAG,GAAGC,OAAO,CAAC,qCAAqC,CAAC;AAS1D,MAAMC,kBAAkB,GAAIC,OAAyB,IAAc;EACjE,OAAO;IACLC,iBAAiB,EAAE,IAAI;IACvBC,kBAAkB,EAAE,CAClB,uCAAuC,EACvC,sDAAsD,CACvD;IACDC,wBAAwB,EAAE,IAAI;IAC9BC,cAAc,EAAE,CAAC,eAAe,CAAC;IACjC,GAAGJ;EACL,CAAC;AACH,CAAC;AAED,MAAMK,mBAAiC,GAAIC,MAAM,IAAK;EACpD,OAAOX,aAAa,CAACW,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,sBAA6C,GAAGA,CACpDP,MAAM,EACN;EAAEJ;AAA4B,CAAC,KAC5B;EACH,OAAOT,aAAa,CAACqB,WAAW,CAACC,eAAe,CAACT,MAAM,EAAEJ,kBAAkB,CAAC;AAC9E,CAAC;AAED,MAAMc,qBAA4C,GAAGA,CACnDV,MAAM,EACN;EAAEF;AAAwB,CAAC,KACxB;EACH,OAAOR,mBAAmB,CAACU,MAAM,EAAGW,GAAG,IAAK;IAC1C,MAAMC,QAAQ,GAAGD,GAAG,CAACT,UAAU;IAC/B,MAAMW,eAAe,GACnB1B,aAAa,CAAC2B,QAAQ,CAACC,yBAAyB,CAACH,QAAQ,CAAC;IAE5D,MAAMI,OAAO,GAAGlB,cAAc,CAACmB,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,YAAmC,GAAGA,CAACvB,MAAM,EAAEwB,SAAS,KAAK;EACjE,MAAM9B,OAAO,GAAGD,kBAAkB,CAAC+B,SAAS,IAAI,CAAC,CAAC,CAAC;EAEnD,IAAI9B,OAAO,CAACC,iBAAiB,EAAE;IAC7BK,MAAM,GAAGD,mBAAmB,CAACC,MAAM,CAAC;EACtC;EAEAA,MAAM,GAAGO,sBAAsB,CAACP,MAAM,EAAEN,OAAO,CAAC;EAEhD,IAAIA,OAAO,CAACG,wBAAwB,EAAE;IACpCG,MAAM,GAAGU,qBAAqB,CAACV,MAAM,EAAEN,OAAO,CAAC;EACjD;EAEA,OAAOM,MAAM;AACf,CAAC;AAED,eAAeZ,mBAAmB,CAACmC,YAAY,EAAEhC,GAAG,CAACkC,IAAI,EAAElC,GAAG,CAACmC,OAAO,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["TurboModuleRegistry","NativeAudioAPIModule","get"],"sourceRoot":"../../../src","sources":["specs/NativeAudioAPIModule.ts"],"mappings":"AAAA,YAAY;;AACZ,SAASA,mBAAmB,QAAQ,cAAc;
|
|
1
|
+
{"version":3,"names":["TurboModuleRegistry","NativeAudioAPIModule","get"],"sourceRoot":"../../../src","sources":["specs/NativeAudioAPIModule.ts"],"mappings":"AAAA,YAAY;;AACZ,SAASA,mBAAmB,QAAQ,cAAc;AAoClD,MAAMC,oBAAoB,GAAGD,mBAAmB,CAACE,GAAG,CAAO,gBAAgB,CAAC;AAE5E,SAASD,oBAAoB","ignoreList":[]}
|
|
@@ -45,6 +45,9 @@ class AudioManager {
|
|
|
45
45
|
async checkRecordingPermissions() {
|
|
46
46
|
return NativeAudioAPIModule.checkRecordingPermissions();
|
|
47
47
|
}
|
|
48
|
+
async getDevicesInfo() {
|
|
49
|
+
return NativeAudioAPIModule.getDevicesInfo();
|
|
50
|
+
}
|
|
48
51
|
}
|
|
49
52
|
export default new AudioManager();
|
|
50
53
|
//# sourceMappingURL=AudioManager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeAudioAPIModule","AudioEventEmitter","global","Error","install","AudioManager","constructor","audioEventEmitter","getDevicePreferredSampleRate","setAudioSessionActivity","enabled","setAudioSessionOptions","options","iosCategory","iosMode","iosOptions","iosAllowHaptics","setLockScreenInfo","info","resetLockScreenInfo","observeAudioInterruptions","observeVolumeChanges","enableRemoteCommand","name","addSystemEventListener","callback","addAudioEventListener","requestRecordingPermissions","checkRecordingPermissions"],"sourceRoot":"../../../src","sources":["system/AudioManager.ts"],"mappings":";;
|
|
1
|
+
{"version":3,"names":["NativeAudioAPIModule","AudioEventEmitter","global","Error","install","AudioManager","constructor","audioEventEmitter","getDevicePreferredSampleRate","setAudioSessionActivity","enabled","setAudioSessionOptions","options","iosCategory","iosMode","iosOptions","iosAllowHaptics","setLockScreenInfo","info","resetLockScreenInfo","observeAudioInterruptions","observeVolumeChanges","enableRemoteCommand","name","addSystemEventListener","callback","addAudioEventListener","requestRecordingPermissions","checkRecordingPermissions","getDevicesInfo"],"sourceRoot":"../../../src","sources":["system/AudioManager.ts"],"mappings":";;AAWA,SAASA,oBAAoB,QAAQ,mBAAU;AAC/C,SAASC,iBAAiB,QAAgC,oBAAW;AAErE,IAAIC,MAAM,CAACD,iBAAiB,IAAI,IAAI,EAAE;EACpC,IAAI,CAACD,oBAAoB,EAAE;IACzB,MAAM,IAAIG,KAAK,CACb,iFACF,CAAC;EACH;EAEAH,oBAAoB,CAACI,OAAO,CAAC,CAAC;AAChC;AAEA,MAAMC,YAAY,CAAC;EAEjBC,WAAWA,CAAA,EAAG;IACZ,IAAI,CAACC,iBAAiB,GAAG,IAAIN,iBAAiB,CAACC,MAAM,CAACD,iBAAiB,CAAC;EAC1E;EAEAO,4BAA4BA,CAAA,EAAW;IACrC,OAAOR,oBAAoB,CAAEQ,4BAA4B,CAAC,CAAC;EAC7D;EAEAC,uBAAuBA,CAACC,OAAgB,EAAoB;IAC1D,OAAOV,oBAAoB,CAAES,uBAAuB,CAACC,OAAO,CAAC;EAC/D;EAEAC,sBAAsBA,CAACC,OAAuB,EAAE;IAC9CZ,oBAAoB,CAAEW,sBAAsB,CAC1CC,OAAO,CAACC,WAAW,IAAI,EAAE,EACzBD,OAAO,CAACE,OAAO,IAAI,EAAE,EACrBF,OAAO,CAACG,UAAU,IAAI,EAAE,EACxBH,OAAO,CAACI,eAAe,IAAI,KAC7B,CAAC;EACH;EAEAC,iBAAiBA,CAACC,IAAoB,EAAE;IACtClB,oBAAoB,CAAEiB,iBAAiB,CAACC,IAAI,CAAC;EAC/C;EAEAC,mBAAmBA,CAAA,EAAG;IACpBnB,oBAAoB,CAAEmB,mBAAmB,CAAC,CAAC;EAC7C;EAEAC,yBAAyBA,CAACV,OAAgB,EAAE;IAC1CV,oBAAoB,CAAEoB,yBAAyB,CAACV,OAAO,CAAC;EAC1D;EAEAW,oBAAoBA,CAACX,OAAgB,EAAE;IACrCV,oBAAoB,CAAEqB,oBAAoB,CAACX,OAAO,CAAC;EACrD;EAEAY,mBAAmBA,CAACC,IAA4B,EAAEb,OAAgB,EAAE;IAClEV,oBAAoB,CAAEsB,mBAAmB,CAACC,IAAI,EAAEb,OAAO,CAAC;EAC1D;EAEAc,sBAAsBA,CACpBD,IAAU,EACVE,QAAmC,EACX;IACxB,OAAO,IAAI,CAAClB,iBAAiB,CAACmB,qBAAqB,CAACH,IAAI,EAAEE,QAAQ,CAAC;EACrE;EAEA,MAAME,2BAA2BA,CAAA,EAA8B;IAC7D,OAAO3B,oBAAoB,CAAE2B,2BAA2B,CAAC,CAAC;EAC5D;EAEA,MAAMC,yBAAyBA,CAAA,EAA8B;IAC3D,OAAO5B,oBAAoB,CAAE4B,yBAAyB,CAAC,CAAC;EAC1D;EAEA,MAAMC,cAAcA,CAAA,EAA8B;IAChD,OAAO7B,oBAAoB,CAAE6B,cAAc,CAAC,CAAC;EAC/C;AACF;AAEA,eAAe,IAAIxB,YAAY,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1,14 +1,17 @@
|
|
|
1
|
-
import { IAudioBufferBaseSourceNode } from '../interfaces';
|
|
2
|
-
import AudioScheduledSourceNode from './AudioScheduledSourceNode';
|
|
3
|
-
import BaseAudioContext from './BaseAudioContext';
|
|
4
1
|
import AudioParam from './AudioParam';
|
|
2
|
+
import BaseAudioContext from './BaseAudioContext';
|
|
5
3
|
import { EventTypeWithValue } from '../events/types';
|
|
4
|
+
import { IAudioBufferBaseSourceNode } from '../interfaces';
|
|
5
|
+
import AudioScheduledSourceNode from './AudioScheduledSourceNode';
|
|
6
6
|
export default class AudioBufferBaseSourceNode extends AudioScheduledSourceNode {
|
|
7
7
|
readonly playbackRate: AudioParam;
|
|
8
8
|
readonly detune: AudioParam;
|
|
9
9
|
private positionChangedSubscription?;
|
|
10
|
+
private positionChangedCallback?;
|
|
10
11
|
constructor(context: BaseAudioContext, node: IAudioBufferBaseSourceNode);
|
|
12
|
+
get onPositionChanged(): ((event: EventTypeWithValue) => void) | undefined;
|
|
11
13
|
set onPositionChanged(callback: ((event: EventTypeWithValue) => void) | null);
|
|
14
|
+
get onPositionChangedInterval(): number;
|
|
12
15
|
set onPositionChangedInterval(value: number);
|
|
13
16
|
}
|
|
14
17
|
//# sourceMappingURL=AudioBufferBaseSourceNode.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AudioBufferBaseSourceNode.d.ts","sourceRoot":"","sources":["../../../src/core/AudioBufferBaseSourceNode.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"AudioBufferBaseSourceNode.d.ts","sourceRoot":"","sources":["../../../src/core/AudioBufferBaseSourceNode.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAElE,MAAM,CAAC,OAAO,OAAO,yBAA0B,SAAQ,wBAAwB;IAC7E,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,OAAO,CAAC,2BAA2B,CAAC,CAAyB;IAC7D,OAAO,CAAC,uBAAuB,CAAC,CAAsC;gBAE1D,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,0BAA0B;IAOvE,IAAW,iBAAiB,IACxB,CAAC,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC,GACrC,SAAS,CAEZ;IAED,IAAW,iBAAiB,CAC1B,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC,GAAG,IAAI,EAiBvD;IAED,IAAW,yBAAyB,IAAI,MAAM,CAE7C;IAED,IAAW,yBAAyB,CAAC,KAAK,EAAE,MAAM,EAEjD;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AudioBufferSourceNode.d.ts","sourceRoot":"","sources":["../../../src/core/AudioBufferSourceNode.ts"],"names":[],"mappings":"AACA,OAAO,yBAAyB,MAAM,6BAA6B,CAAC;AACpE,OAAO,WAAW,MAAM,eAAe,CAAC;AAGxC,MAAM,CAAC,OAAO,OAAO,qBAAsB,SAAQ,yBAAyB;IAC1E,IAAW,MAAM,IAAI,WAAW,GAAG,IAAI,CAMtC;IAED,IAAW,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"AudioBufferSourceNode.d.ts","sourceRoot":"","sources":["../../../src/core/AudioBufferSourceNode.ts"],"names":[],"mappings":"AACA,OAAO,yBAAyB,MAAM,6BAA6B,CAAC;AACpE,OAAO,WAAW,MAAM,eAAe,CAAC;AAGxC,MAAM,CAAC,OAAO,OAAO,qBAAsB,SAAQ,yBAAyB;IAC1E,IAAW,MAAM,IAAI,WAAW,GAAG,IAAI,CAMtC;IAED,IAAW,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,EAO3C;IAED,IAAW,QAAQ,IAAI,OAAO,CAE7B;IAED,IAAW,QAAQ,CAAC,KAAK,EAAE,OAAO,EAEjC;IAED,IAAW,IAAI,IAAI,OAAO,CAEzB;IAED,IAAW,IAAI,CAAC,KAAK,EAAE,OAAO,EAE7B;IAED,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED,IAAW,SAAS,CAAC,KAAK,EAAE,MAAM,EAEjC;IAED,IAAW,OAAO,IAAI,MAAM,CAE3B;IAED,IAAW,OAAO,CAAC,KAAK,EAAE,MAAM,EAE/B;IAEM,KAAK,CAAC,IAAI,GAAE,MAAU,EAAE,MAAM,GAAE,MAAU,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI;CA0B5E"}
|