react-native-audio-api 0.11.2 → 0.11.3
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/src/main/java/com/swmansion/audioapi/AudioAPIModule.kt +9 -0
- package/android/src/main/java/com/swmansion/audioapi/system/MediaSessionManager.kt +2 -0
- package/android/src/oldarch/NativeAudioAPIModuleSpec.java +4 -0
- package/common/cpp/audioapi/HostObjects/inputs/AudioRecorderHostObject.cpp +2 -1
- package/common/cpp/audioapi/core/sources/StreamerNode.h +6 -0
- package/common/cpp/audioapi/jsi/JsiUtils.cpp +21 -0
- package/common/cpp/audioapi/jsi/JsiUtils.h +17 -0
- package/ios/audioapi/ios/AudioAPIModule.mm +9 -0
- package/ios/audioapi/ios/system/AudioEngine.mm +3 -1
- package/ios/audioapi/ios/system/AudioSessionManager.h +3 -0
- package/ios/audioapi/ios/system/AudioSessionManager.mm +38 -2
- package/lib/commonjs/api.js +8 -8
- package/lib/commonjs/api.js.map +1 -1
- package/lib/commonjs/core/AudioDecoder.js +2 -2
- package/lib/commonjs/core/AudioDecoder.js.map +1 -1
- package/lib/commonjs/core/AudioRecorder.js +1 -1
- package/lib/commonjs/core/AudioRecorder.js.map +1 -1
- package/lib/commonjs/hooks/index.js +21 -0
- package/lib/commonjs/hooks/index.js.map +1 -0
- package/lib/commonjs/hooks/useAudioInput.js +70 -0
- package/lib/commonjs/hooks/useAudioInput.js.map +1 -0
- package/lib/commonjs/hooks/useSystemVolume.js +4 -5
- package/lib/commonjs/hooks/useSystemVolume.js.map +1 -1
- package/lib/commonjs/index.js +11 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/specs/NativeAudioAPIModule.js.map +1 -1
- package/lib/commonjs/specs/NativeAudioAPIModule.web.js +1 -0
- package/lib/commonjs/specs/NativeAudioAPIModule.web.js.map +1 -1
- package/lib/commonjs/system/AudioManager.js +3 -0
- package/lib/commonjs/system/AudioManager.js.map +1 -1
- package/lib/commonjs/web-system/AudioManager.js +1 -0
- package/lib/commonjs/web-system/AudioManager.js.map +1 -1
- package/lib/module/api.js +2 -3
- package/lib/module/api.js.map +1 -1
- package/lib/module/core/AudioDecoder.js +2 -2
- package/lib/module/core/AudioDecoder.js.map +1 -1
- package/lib/module/core/AudioRecorder.js +1 -1
- package/lib/module/core/AudioRecorder.js.map +1 -1
- package/lib/module/hooks/index.js +5 -0
- package/lib/module/hooks/index.js.map +1 -0
- package/lib/module/hooks/useAudioInput.js +66 -0
- package/lib/module/hooks/useAudioInput.js.map +1 -0
- package/lib/module/hooks/useSystemVolume.js +1 -1
- package/lib/module/hooks/useSystemVolume.js.map +1 -1
- package/lib/module/index.js +5 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/specs/NativeAudioAPIModule.js.map +1 -1
- package/lib/module/specs/NativeAudioAPIModule.web.js +1 -0
- package/lib/module/specs/NativeAudioAPIModule.web.js.map +1 -1
- package/lib/module/system/AudioManager.js +3 -0
- package/lib/module/system/AudioManager.js.map +1 -1
- package/lib/module/web-system/AudioManager.js +1 -0
- package/lib/module/web-system/AudioManager.js.map +1 -1
- package/lib/typescript/api.d.ts +2 -3
- package/lib/typescript/api.d.ts.map +1 -1
- package/lib/typescript/core/AudioDecoder.d.ts.map +1 -1
- package/lib/typescript/events/types.d.ts +6 -4
- package/lib/typescript/events/types.d.ts.map +1 -1
- package/lib/typescript/hooks/index.d.ts +3 -0
- package/lib/typescript/hooks/index.d.ts.map +1 -0
- package/lib/typescript/hooks/useAudioInput.d.ts +28 -0
- package/lib/typescript/hooks/useAudioInput.d.ts.map +1 -0
- package/lib/typescript/hooks/useSystemVolume.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +1 -0
- package/lib/typescript/index.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/specs/NativeAudioAPIModule.web.d.ts +1 -0
- package/lib/typescript/specs/NativeAudioAPIModule.web.d.ts.map +1 -1
- package/lib/typescript/system/AudioManager.d.ts +1 -0
- package/lib/typescript/system/AudioManager.d.ts.map +1 -1
- package/lib/typescript/system/types.d.ts +3 -1
- package/lib/typescript/system/types.d.ts.map +1 -1
- package/lib/typescript/web-system/AudioManager.d.ts +1 -0
- package/lib/typescript/web-system/AudioManager.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/api.ts +5 -4
- package/src/core/AudioDecoder.ts +2 -2
- package/src/core/AudioRecorder.ts +1 -1
- package/src/events/types.ts +16 -12
- package/src/hooks/index.ts +2 -0
- package/src/hooks/useAudioInput.ts +93 -0
- package/src/hooks/useSystemVolume.ts +3 -2
- package/src/index.ts +5 -0
- package/src/specs/NativeAudioAPIModule.ts +2 -1
- package/src/specs/NativeAudioAPIModule.web.ts +2 -0
- package/src/system/AudioManager.ts +4 -0
- package/src/system/types.ts +3 -1
- package/src/web-system/AudioManager.ts +1 -0
|
@@ -149,6 +149,15 @@ class AudioAPIModule(
|
|
|
149
149
|
promise.resolve(MediaSessionManager.getDevicesInfo())
|
|
150
150
|
}
|
|
151
151
|
|
|
152
|
+
override fun setInputDevice(
|
|
153
|
+
deviceId: String?,
|
|
154
|
+
promise: Promise?,
|
|
155
|
+
) {
|
|
156
|
+
// TODO: noop for now, but it should be moved to upcoming
|
|
157
|
+
// audio engine implementation for android (duplex stream)
|
|
158
|
+
promise?.resolve(true)
|
|
159
|
+
}
|
|
160
|
+
|
|
152
161
|
// Notification system methods
|
|
153
162
|
@RequiresPermission(android.Manifest.permission.POST_NOTIFICATIONS)
|
|
154
163
|
override fun showNotification(
|
|
@@ -209,6 +209,7 @@ object MediaSessionManager {
|
|
|
209
209
|
|
|
210
210
|
for (inputDevice in this.audioManager.getDevices(AudioManager.GET_DEVICES_INPUTS)) {
|
|
211
211
|
val deviceInfo = Arguments.createMap()
|
|
212
|
+
deviceInfo.putString("id", inputDevice.getId().toString())
|
|
212
213
|
deviceInfo.putString("name", inputDevice.productName.toString())
|
|
213
214
|
deviceInfo.putString("type", parseDeviceType(inputDevice))
|
|
214
215
|
|
|
@@ -217,6 +218,7 @@ object MediaSessionManager {
|
|
|
217
218
|
|
|
218
219
|
for (outputDevice in this.audioManager.getDevices(AudioManager.GET_DEVICES_OUTPUTS)) {
|
|
219
220
|
val deviceInfo = Arguments.createMap()
|
|
221
|
+
deviceInfo.putString("id", outputDevice.getId().toString())
|
|
220
222
|
deviceInfo.putString("name", outputDevice.productName.toString())
|
|
221
223
|
deviceInfo.putString("type", parseDeviceType(outputDevice))
|
|
222
224
|
|
|
@@ -86,6 +86,10 @@ public abstract class NativeAudioAPIModuleSpec extends ReactContextBaseJavaModul
|
|
|
86
86
|
@DoNotStrip
|
|
87
87
|
public abstract void getDevicesInfo(Promise promise);
|
|
88
88
|
|
|
89
|
+
@ReactMethod
|
|
90
|
+
@DoNotStrip
|
|
91
|
+
public abstract void setInputDevice(String deviceId, Promise promise);
|
|
92
|
+
|
|
89
93
|
@ReactMethod
|
|
90
94
|
@DoNotStrip
|
|
91
95
|
public abstract void showNotification(String type, String key, ReadableMap options, Promise promise);
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
#include <audioapi/core/sources/AudioBuffer.h>
|
|
7
7
|
#include <audioapi/events/AudioEventHandlerRegistry.h>
|
|
8
8
|
#include <audioapi/utils/AudioFileProperties.h>
|
|
9
|
+
#include <audioapi/jsi/JsiUtils.h>
|
|
9
10
|
#ifdef ANDROID
|
|
10
11
|
#include <audioapi/android/core/AndroidAudioRecorder.h>
|
|
11
12
|
#else
|
|
@@ -41,7 +42,7 @@ AudioRecorderHostObject::AudioRecorderHostObject(
|
|
|
41
42
|
}
|
|
42
43
|
|
|
43
44
|
JSI_HOST_FUNCTION_IMPL(AudioRecorderHostObject, start) {
|
|
44
|
-
auto fileNameOverride =
|
|
45
|
+
auto fileNameOverride = jsiutils::argToString(runtime, args, count, 0, "");
|
|
45
46
|
auto result = audioRecorder_->start(fileNameOverride);
|
|
46
47
|
auto jsResult = jsi::Object(runtime);
|
|
47
48
|
|
|
@@ -70,12 +70,18 @@ class StreamerNode : public AudioScheduledSourceNode {
|
|
|
70
70
|
*/
|
|
71
71
|
bool initialize(const std::string &inputUrl);
|
|
72
72
|
|
|
73
|
+
std::string getStreamPath() const {
|
|
74
|
+
return streamPath_;
|
|
75
|
+
}
|
|
76
|
+
|
|
73
77
|
protected:
|
|
74
78
|
std::shared_ptr<AudioBus> processNode(
|
|
75
79
|
const std::shared_ptr<AudioBus> &processingBus,
|
|
76
80
|
int framesToProcess) override;
|
|
77
81
|
|
|
78
82
|
private:
|
|
83
|
+
std::string streamPath_;
|
|
84
|
+
|
|
79
85
|
#if !RN_AUDIO_API_FFMPEG_DISABLED
|
|
80
86
|
AVFormatContext *fmtCtx_;
|
|
81
87
|
AVCodecContext *codecCtx_;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
#include <audioapi/jsi/JsiUtils.h>
|
|
2
|
+
#include <string>
|
|
3
|
+
|
|
4
|
+
namespace audioapi::jsiutils {
|
|
5
|
+
|
|
6
|
+
using namespace facebook;
|
|
7
|
+
|
|
8
|
+
std::string argToString(
|
|
9
|
+
jsi::Runtime &runtime,
|
|
10
|
+
const jsi::Value *args,
|
|
11
|
+
size_t count,
|
|
12
|
+
size_t index,
|
|
13
|
+
const std::string &defaultValue) {
|
|
14
|
+
if (index < count && args[index].isString()) {
|
|
15
|
+
return args[index].asString(runtime).utf8(runtime);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
return defaultValue;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
} // namespace audioapi::jsiutils
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#include <jsi/jsi.h>
|
|
4
|
+
#include <string>
|
|
5
|
+
|
|
6
|
+
namespace audioapi::jsiutils {
|
|
7
|
+
|
|
8
|
+
using namespace facebook;
|
|
9
|
+
|
|
10
|
+
std::string argToString(
|
|
11
|
+
jsi::Runtime &runtime,
|
|
12
|
+
const jsi::Value *args,
|
|
13
|
+
size_t count,
|
|
14
|
+
size_t index,
|
|
15
|
+
const std::string &defaultValue = "");
|
|
16
|
+
|
|
17
|
+
} // namespace audioapi::jsiutils
|
|
@@ -224,6 +224,15 @@ RCT_EXPORT_METHOD(
|
|
|
224
224
|
});
|
|
225
225
|
}
|
|
226
226
|
|
|
227
|
+
RCT_EXPORT_METHOD(
|
|
228
|
+
setInputDevice : (NSString *)deviceId resolve : (RCTPromiseResolveBlock)
|
|
229
|
+
resolve reject : (RCTPromiseRejectBlock)reject)
|
|
230
|
+
{
|
|
231
|
+
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
|
|
232
|
+
[self.audioSessionManager setInputDevice:deviceId resolve:resolve reject:reject];
|
|
233
|
+
});
|
|
234
|
+
}
|
|
235
|
+
|
|
227
236
|
RCT_EXPORT_METHOD(disableSessionManagement)
|
|
228
237
|
{
|
|
229
238
|
[self.audioSessionManager disableSessionManagement];
|
|
@@ -270,8 +270,10 @@ static AudioEngine *_sharedInstance = nil;
|
|
|
270
270
|
[self.audioEngine stop];
|
|
271
271
|
}
|
|
272
272
|
|
|
273
|
-
self.audioEngine = [[AVAudioEngine alloc] init];
|
|
274
273
|
[self rebuildAudioEngine];
|
|
274
|
+
if (self.state == AudioEngineState::AudioEngineStateRunning) {
|
|
275
|
+
[self startEngine];
|
|
276
|
+
}
|
|
275
277
|
}
|
|
276
278
|
|
|
277
279
|
- (void)logAudioEngineState
|
|
@@ -45,6 +45,9 @@
|
|
|
45
45
|
|
|
46
46
|
- (void)getDevicesInfo:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject;
|
|
47
47
|
- (NSArray<NSDictionary *> *)parseDeviceList:(NSArray<AVAudioSessionPortDescription *> *)devices;
|
|
48
|
+
- (void)setInputDevice:(NSString *)deviceId
|
|
49
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
50
|
+
reject:(RCTPromiseRejectBlock)reject;
|
|
48
51
|
|
|
49
52
|
- (bool)isSessionActive;
|
|
50
53
|
|
|
@@ -291,12 +291,48 @@ static AudioSessionManager *_sharedInstance = nil;
|
|
|
291
291
|
[deviceList addObject:@{
|
|
292
292
|
@"name" : device.portName,
|
|
293
293
|
@"category" : device.portType,
|
|
294
|
+
@"id" : device.UID,
|
|
294
295
|
}];
|
|
295
296
|
}
|
|
296
297
|
|
|
297
298
|
return deviceList;
|
|
298
299
|
}
|
|
299
300
|
|
|
301
|
+
- (void)setInputDevice:(NSString *)deviceId
|
|
302
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
303
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
304
|
+
{
|
|
305
|
+
NSError *error = nil;
|
|
306
|
+
NSArray<AVAudioSessionPortDescription *> *availableInputs = [self.audioSession availableInputs];
|
|
307
|
+
|
|
308
|
+
AVAudioSessionPortDescription *selectedInput = nil;
|
|
309
|
+
|
|
310
|
+
for (AVAudioSessionPortDescription *input in availableInputs) {
|
|
311
|
+
if ([input.UID isEqualToString:deviceId]) {
|
|
312
|
+
selectedInput = input;
|
|
313
|
+
break;
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
if (selectedInput == nil) {
|
|
318
|
+
reject(nil, [NSString stringWithFormat:@"Input device with id %@ not found", deviceId], nil);
|
|
319
|
+
return;
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
[self.audioSession setPreferredInput:selectedInput error:&error];
|
|
323
|
+
|
|
324
|
+
if (error != nil) {
|
|
325
|
+
reject(
|
|
326
|
+
nil,
|
|
327
|
+
[NSString
|
|
328
|
+
stringWithFormat:@"Error while setting preferred input: %@", [error debugDescription]],
|
|
329
|
+
error);
|
|
330
|
+
return;
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
resolve(@(true));
|
|
334
|
+
}
|
|
335
|
+
|
|
300
336
|
- (AVAudioSessionCategory)categoryFromString:(NSString *)categorySTR
|
|
301
337
|
{
|
|
302
338
|
AVAudioSessionCategory category = 0;
|
|
@@ -362,8 +398,8 @@ static AudioSessionManager *_sharedInstance = nil;
|
|
|
362
398
|
options |= AVAudioSessionCategoryOptionMixWithOthers;
|
|
363
399
|
}
|
|
364
400
|
|
|
365
|
-
if ([option isEqualToString:@"
|
|
366
|
-
options |=
|
|
401
|
+
if ([option isEqualToString:@"allowBluetoothHFP"]) {
|
|
402
|
+
options |= AVAudioSessionCategoryOptionAllowBluetoothHFP;
|
|
367
403
|
}
|
|
368
404
|
|
|
369
405
|
if ([option isEqualToString:@"defaultToSpeaker"]) {
|
package/lib/commonjs/api.js
CHANGED
|
@@ -25,6 +25,7 @@ var _exportNames = {
|
|
|
25
25
|
GainNode: true,
|
|
26
26
|
OfflineAudioContext: true,
|
|
27
27
|
OscillatorNode: true,
|
|
28
|
+
PeriodicWave: true,
|
|
28
29
|
RecorderAdapterNode: true,
|
|
29
30
|
StereoPannerNode: true,
|
|
30
31
|
StreamerNode: true,
|
|
@@ -32,7 +33,6 @@ var _exportNames = {
|
|
|
32
33
|
WorkletNode: true,
|
|
33
34
|
WorkletProcessingNode: true,
|
|
34
35
|
WorkletSourceNode: true,
|
|
35
|
-
useSystemVolume: true,
|
|
36
36
|
AudioManager: true,
|
|
37
37
|
FilePreset: true,
|
|
38
38
|
PlaybackNotificationManager: true,
|
|
@@ -168,6 +168,12 @@ Object.defineProperty(exports, "OscillatorNode", {
|
|
|
168
168
|
return _OscillatorNode.default;
|
|
169
169
|
}
|
|
170
170
|
});
|
|
171
|
+
Object.defineProperty(exports, "PeriodicWave", {
|
|
172
|
+
enumerable: true,
|
|
173
|
+
get: function () {
|
|
174
|
+
return _PeriodicWave.default;
|
|
175
|
+
}
|
|
176
|
+
});
|
|
171
177
|
Object.defineProperty(exports, "PlaybackControlName", {
|
|
172
178
|
enumerable: true,
|
|
173
179
|
get: function () {
|
|
@@ -258,12 +264,6 @@ Object.defineProperty(exports, "decodePCMInBase64", {
|
|
|
258
264
|
return _AudioDecoder.decodePCMInBase64;
|
|
259
265
|
}
|
|
260
266
|
});
|
|
261
|
-
Object.defineProperty(exports, "useSystemVolume", {
|
|
262
|
-
enumerable: true,
|
|
263
|
-
get: function () {
|
|
264
|
-
return _useSystemVolume.default;
|
|
265
|
-
}
|
|
266
|
-
});
|
|
267
267
|
require("./AudioAPIModule");
|
|
268
268
|
var _AnalyserNode = _interopRequireDefault(require("./core/AnalyserNode"));
|
|
269
269
|
var _AudioBuffer = _interopRequireDefault(require("./core/AudioBuffer"));
|
|
@@ -285,6 +285,7 @@ var _DelayNode = _interopRequireDefault(require("./core/DelayNode"));
|
|
|
285
285
|
var _GainNode = _interopRequireDefault(require("./core/GainNode"));
|
|
286
286
|
var _OfflineAudioContext = _interopRequireDefault(require("./core/OfflineAudioContext"));
|
|
287
287
|
var _OscillatorNode = _interopRequireDefault(require("./core/OscillatorNode"));
|
|
288
|
+
var _PeriodicWave = _interopRequireDefault(require("./core/PeriodicWave"));
|
|
288
289
|
var _RecorderAdapterNode = _interopRequireDefault(require("./core/RecorderAdapterNode"));
|
|
289
290
|
var _StereoPannerNode = _interopRequireDefault(require("./core/StereoPannerNode"));
|
|
290
291
|
var _StreamerNode = _interopRequireDefault(require("./core/StreamerNode"));
|
|
@@ -292,7 +293,6 @@ var _WaveShaperNode = _interopRequireDefault(require("./core/WaveShaperNode"));
|
|
|
292
293
|
var _WorkletNode = _interopRequireDefault(require("./core/WorkletNode"));
|
|
293
294
|
var _WorkletProcessingNode = _interopRequireDefault(require("./core/WorkletProcessingNode"));
|
|
294
295
|
var _WorkletSourceNode = _interopRequireDefault(require("./core/WorkletSourceNode"));
|
|
295
|
-
var _useSystemVolume = _interopRequireDefault(require("./hooks/useSystemVolume"));
|
|
296
296
|
var _system = _interopRequireDefault(require("./system"));
|
|
297
297
|
var _errors = require("./errors");
|
|
298
298
|
Object.keys(_errors).forEach(function (key) {
|
package/lib/commonjs/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["require","_AnalyserNode","_interopRequireDefault","_AudioBuffer","_AudioBufferQueueSourceNode","_AudioBufferSourceNode","_AudioContext","_AudioDecoder","_AudioDestinationNode","_AudioNode","_AudioParam","_AudioRecorder","_AudioScheduledSourceNode","_AudioStretcher","_BaseAudioContext","_BiquadFilterNode","_ConstantSourceNode","_ConvolverNode","_DelayNode","_GainNode","_OfflineAudioContext","_OscillatorNode","_RecorderAdapterNode","_StereoPannerNode","_StreamerNode","_WaveShaperNode","_WorkletNode","_WorkletProcessingNode","_WorkletSourceNode","
|
|
1
|
+
{"version":3,"names":["require","_AnalyserNode","_interopRequireDefault","_AudioBuffer","_AudioBufferQueueSourceNode","_AudioBufferSourceNode","_AudioContext","_AudioDecoder","_AudioDestinationNode","_AudioNode","_AudioParam","_AudioRecorder","_AudioScheduledSourceNode","_AudioStretcher","_BaseAudioContext","_BiquadFilterNode","_ConstantSourceNode","_ConvolverNode","_DelayNode","_GainNode","_OfflineAudioContext","_OscillatorNode","_PeriodicWave","_RecorderAdapterNode","_StereoPannerNode","_StreamerNode","_WaveShaperNode","_WorkletNode","_WorkletProcessingNode","_WorkletSourceNode","_system","_errors","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_types","_types2","_filePresets","_notification","e","__esModule","default"],"sourceRoot":"../../src","sources":["api.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,9 +6,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.decodeAudioData = decodeAudioData;
|
|
7
7
|
exports.decodePCMInBase64 = decodePCMInBase64;
|
|
8
8
|
var _reactNative = require("react-native");
|
|
9
|
+
var _errors = require("../errors");
|
|
9
10
|
var _paths = require("../utils/paths");
|
|
10
11
|
var _AudioBuffer = _interopRequireDefault(require("./AudioBuffer"));
|
|
11
|
-
var _errors = require("../errors");
|
|
12
12
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
13
|
class AudioDecoder {
|
|
14
14
|
static instance = null;
|
|
@@ -38,7 +38,7 @@ class AudioDecoder {
|
|
|
38
38
|
const buffer = await this.decoder.decodeWithMemoryBlock(new Uint8Array(arrayBuffer), sampleRate ?? 0);
|
|
39
39
|
return new _AudioBuffer.default(buffer);
|
|
40
40
|
}
|
|
41
|
-
if (!(typeof
|
|
41
|
+
if (!(typeof stringSource === 'string')) {
|
|
42
42
|
throw new TypeError('Input must be a module, uri or ArrayBuffer');
|
|
43
43
|
}
|
|
44
44
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_paths","_AudioBuffer","_interopRequireDefault","
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_errors","_paths","_AudioBuffer","_interopRequireDefault","e","__esModule","default","AudioDecoder","instance","constructor","decoder","global","createAudioDecoder","decodeAudioDataImplementation","input","sampleRate","fetchOptions","ArrayBuffer","buffer","decodeWithMemoryBlock","Uint8Array","AudioBuffer","stringSource","Image","resolveAssetSource","uri","isBase64Source","AudioApiError","isDataBlobString","isRemoteSource","arrayBuffer","fetch","then","res","TypeError","filePath","startsWith","replace","decodeWithFilePath","getInstance","decodeAudioDataInstance","audioBuffer","decodePCMInBase64Instance","base64String","inputSampleRate","inputChannelCount","interleaved","decodeWithPCMInBase64","decodeAudioData","decodePCMInBase64","isInterleaved"],"sourceRoot":"../../../src","sources":["core/AudioDecoder.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -16,7 +16,7 @@ function withDefaultOptions(inOptions) {
|
|
|
16
16
|
return {
|
|
17
17
|
directory: _types.FileDirectory.Cache,
|
|
18
18
|
subDirectory: 'AudioAPI',
|
|
19
|
-
fileNamePrefix: '
|
|
19
|
+
fileNamePrefix: 'recording',
|
|
20
20
|
channelCount: 2,
|
|
21
21
|
format: _types.FileFormat.M4A,
|
|
22
22
|
batchDurationSeconds: 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_errors","require","_events","_types","_filePresets","_interopRequireDefault","_AudioBuffer","e","__esModule","default","withDefaultOptions","inOptions","directory","FileDirectory","Cache","subDirectory","fileNamePrefix","channelCount","format","FileFormat","M4A","batchDurationSeconds","preset","FilePreset","High","androidFlushIntervalMs","AudioRecorder","onAudioReadySubscription","onErrorSubscription","options_","isFileOutputEnabled","audioEventEmitter","AudioEventEmitter","global","constructor","recorder","createAudioRecorder","enableFileOutput","options","parsedOptions","result","disableFileOutput","start","status","path","fileNameOverride","stop","pause","resume","connect","node","wasConnected","AudioApiError","getNode","disconnect","onAudioReady","callback","clearOnAudioReady","remove","addAudioEventListener","event","audioBuffer","AudioBuffer","buffer","setOnAudioReady","sampleRate","bufferLength","callbackId","subscriptionId","isRecording","isPaused","getCurrentDuration","onError","clearOnError","setOnError","exports"],"sourceRoot":"../../../src","sources":["core/AudioRecorder.ts"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAMA,IAAAE,MAAA,GAAAF,OAAA;AASA,IAAAG,YAAA,GAAAC,sBAAA,CAAAJ,OAAA;AACA,IAAAK,YAAA,GAAAD,sBAAA,CAAAJ,OAAA;AAAwC,SAAAI,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAGxC;AACA;AACA,SAASG,kBAAkBA,CACzBC,SAAmC,EACC;EACpC,OAAO;IACLC,SAAS,EAAEC,oBAAa,CAACC,KAAK;IAC9BC,YAAY,EAAE,UAAU;IACxBC,cAAc,EAAE,
|
|
1
|
+
{"version":3,"names":["_errors","require","_events","_types","_filePresets","_interopRequireDefault","_AudioBuffer","e","__esModule","default","withDefaultOptions","inOptions","directory","FileDirectory","Cache","subDirectory","fileNamePrefix","channelCount","format","FileFormat","M4A","batchDurationSeconds","preset","FilePreset","High","androidFlushIntervalMs","AudioRecorder","onAudioReadySubscription","onErrorSubscription","options_","isFileOutputEnabled","audioEventEmitter","AudioEventEmitter","global","constructor","recorder","createAudioRecorder","enableFileOutput","options","parsedOptions","result","disableFileOutput","start","status","path","fileNameOverride","stop","pause","resume","connect","node","wasConnected","AudioApiError","getNode","disconnect","onAudioReady","callback","clearOnAudioReady","remove","addAudioEventListener","event","audioBuffer","AudioBuffer","buffer","setOnAudioReady","sampleRate","bufferLength","callbackId","subscriptionId","isRecording","isPaused","getCurrentDuration","onError","clearOnError","setOnError","exports"],"sourceRoot":"../../../src","sources":["core/AudioRecorder.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "useAudioInput", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _useAudioInput.default;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "useSystemVolume", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return _useSystemVolume.default;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
var _useAudioInput = _interopRequireDefault(require("./useAudioInput"));
|
|
19
|
+
var _useSystemVolume = _interopRequireDefault(require("./useSystemVolume"));
|
|
20
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_useAudioInput","_interopRequireDefault","require","_useSystemVolume","e","__esModule","default"],"sourceRoot":"../../../src","sources":["hooks/index.ts"],"mappings":";;;;;;;;;;;;;;;;;AAAA,IAAAA,cAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAF,sBAAA,CAAAC,OAAA;AAA+D,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA","ignoreList":[]}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = useAudioInput;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _api = require("../api");
|
|
9
|
+
const meaningfulReasons = ['NewDeviceAvailable', 'OldDeviceUnavailable',
|
|
10
|
+
// e.g. system picks a different device as current one is not suitable for the new configuration
|
|
11
|
+
'CategoryChange', 'ConfigurationChange'];
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* A hook that provides basic information and selection capabilities for audio
|
|
15
|
+
* input devices on the system. (iOS only currently). The hook will
|
|
16
|
+
* automatically listen for configuration changes and updates its state. If you
|
|
17
|
+
* need more granular control, consider using the AudioManager API directly.
|
|
18
|
+
*
|
|
19
|
+
* @returns An object containing audio input information and selection
|
|
20
|
+
* capabilities
|
|
21
|
+
*/
|
|
22
|
+
function useAudioInput() {
|
|
23
|
+
const [availableInputs, setAvailableInputs] = (0, _react.useState)([]);
|
|
24
|
+
const [currentInput, setCurrentInput] = (0, _react.useState)(null);
|
|
25
|
+
const onSelectInput = (0, _react.useCallback)(async device => {
|
|
26
|
+
const success = await _api.AudioManager.setInputDevice(device.id);
|
|
27
|
+
if (success) {
|
|
28
|
+
setCurrentInput(device.id);
|
|
29
|
+
}
|
|
30
|
+
const devicesInfo = await _api.AudioManager.getDevicesInfo();
|
|
31
|
+
setAvailableInputs(devicesInfo.availableInputs);
|
|
32
|
+
}, []);
|
|
33
|
+
(0, _react.useEffect)(() => {
|
|
34
|
+
async function fetchAvailableInputs() {
|
|
35
|
+
const audioDevices = await _api.AudioManager.getDevicesInfo();
|
|
36
|
+
const currentDeviceId = audioDevices.currentInputs.length ? audioDevices.currentInputs[0].id : null;
|
|
37
|
+
setAvailableInputs(audioDevices.availableInputs);
|
|
38
|
+
setCurrentInput(currentDeviceId);
|
|
39
|
+
}
|
|
40
|
+
async function handleRouteChange(event) {
|
|
41
|
+
if (!meaningfulReasons.includes(event.reason)) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
await fetchAvailableInputs();
|
|
45
|
+
}
|
|
46
|
+
const sub = _api.AudioManager.addSystemEventListener('routeChange', handleRouteChange);
|
|
47
|
+
fetchAvailableInputs();
|
|
48
|
+
return () => {
|
|
49
|
+
sub?.remove();
|
|
50
|
+
};
|
|
51
|
+
}, []);
|
|
52
|
+
return (0, _react.useMemo)(() => ({
|
|
53
|
+
/**
|
|
54
|
+
* The list of available audio input devices under current device
|
|
55
|
+
* configuration.
|
|
56
|
+
*/
|
|
57
|
+
availableInputs,
|
|
58
|
+
/**
|
|
59
|
+
* The currently selected audio input device, or null if none is yet
|
|
60
|
+
* decided by the system.
|
|
61
|
+
*/
|
|
62
|
+
currentInput: availableInputs.find(d => d.id === currentInput) || null,
|
|
63
|
+
/**
|
|
64
|
+
* Selects the given device as the current input. Returns true if
|
|
65
|
+
* successful, throws otherwise.
|
|
66
|
+
*/
|
|
67
|
+
onSelectInput
|
|
68
|
+
}), [availableInputs, currentInput, onSelectInput]);
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=useAudioInput.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_api","meaningfulReasons","useAudioInput","availableInputs","setAvailableInputs","useState","currentInput","setCurrentInput","onSelectInput","useCallback","device","success","AudioManager","setInputDevice","id","devicesInfo","getDevicesInfo","useEffect","fetchAvailableInputs","audioDevices","currentDeviceId","currentInputs","length","handleRouteChange","event","includes","reason","sub","addSystemEventListener","remove","useMemo","find","d"],"sourceRoot":"../../../src","sources":["hooks/useAudioInput.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,IAAA,GAAAD,OAAA;AAQA,MAAME,iBAAsC,GAAG,CAC7C,oBAAoB,EACpB,sBAAsB;AACtB;AACA,gBAAgB,EAChB,qBAAqB,CACtB;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASC,aAAaA,CAAA,EAAG;EACtC,MAAM,CAACC,eAAe,EAAEC,kBAAkB,CAAC,GAAG,IAAAC,eAAQ,EAAkB,EAAE,CAAC;EAC3E,MAAM,CAACC,YAAY,EAAEC,eAAe,CAAC,GAAG,IAAAF,eAAQ,EAAgB,IAAI,CAAC;EAErE,MAAMG,aAAa,GAAG,IAAAC,kBAAW,EAAC,MAAOC,MAAuB,IAAK;IACnE,MAAMC,OAAO,GAAG,MAAMC,iBAAY,CAACC,cAAc,CAACH,MAAM,CAACI,EAAE,CAAC;IAE5D,IAAIH,OAAO,EAAE;MACXJ,eAAe,CAACG,MAAM,CAACI,EAAE,CAAC;IAC5B;IAEA,MAAMC,WAA6B,GAAG,MAAMH,iBAAY,CAACI,cAAc,CAAC,CAAC;IACzEZ,kBAAkB,CAACW,WAAW,CAACZ,eAAe,CAAC;EACjD,CAAC,EAAE,EAAE,CAAC;EAEN,IAAAc,gBAAS,EAAC,MAAM;IACd,eAAeC,oBAAoBA,CAAA,EAAG;MACpC,MAAMC,YAAY,GAAG,MAAMP,iBAAY,CAACI,cAAc,CAAC,CAAC;MACxD,MAAMI,eAAe,GAAGD,YAAY,CAACE,aAAa,CAACC,MAAM,GACrDH,YAAY,CAACE,aAAa,CAAC,CAAC,CAAC,CAACP,EAAE,GAChC,IAAI;MAERV,kBAAkB,CAACe,YAAY,CAAChB,eAAe,CAAC;MAChDI,eAAe,CAACa,eAAe,CAAC;IAClC;IAEA,eAAeG,iBAAiBA,CAACC,KAA6B,EAAE;MAC9D,IAAI,CAACvB,iBAAiB,CAACwB,QAAQ,CAACD,KAAK,CAACE,MAAM,CAAC,EAAE;QAC7C;MACF;MAEA,MAAMR,oBAAoB,CAAC,CAAC;IAC9B;IAEA,MAAMS,GAAG,GAAGf,iBAAY,CAACgB,sBAAsB,CAC7C,aAAa,EACbL,iBACF,CAAC;IAEDL,oBAAoB,CAAC,CAAC;IACtB,OAAO,MAAM;MACXS,GAAG,EAAEE,MAAM,CAAC,CAAC;IACf,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,OAAO,IAAAC,cAAO,EACZ,OAAO;IACL;AACN;AACA;AACA;IACM3B,eAAe;IACf;AACN;AACA;AACA;IACMG,YAAY,EAAEH,eAAe,CAAC4B,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAAClB,EAAE,KAAKR,YAAY,CAAC,IAAI,IAAI;IACxE;AACN;AACA;AACA;IACME;EACF,CAAC,CAAC,EACF,CAACL,eAAe,EAAEG,YAAY,EAAEE,aAAa,CAC/C,CAAC;AACH","ignoreList":[]}
|
|
@@ -5,18 +5,17 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = useSystemVolume;
|
|
7
7
|
var _react = require("react");
|
|
8
|
-
var
|
|
9
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
8
|
+
var _api = require("../api");
|
|
10
9
|
function useSystemVolume() {
|
|
11
10
|
const [volume, setVolume] = (0, _react.useState)(0);
|
|
12
11
|
(0, _react.useEffect)(() => {
|
|
13
|
-
|
|
14
|
-
const listener =
|
|
12
|
+
_api.AudioManager.observeVolumeChanges(true);
|
|
13
|
+
const listener = _api.AudioManager.addSystemEventListener('volumeChange', e => {
|
|
15
14
|
setVolume(parseFloat(e.value.toFixed(2)));
|
|
16
15
|
});
|
|
17
16
|
return () => {
|
|
18
17
|
listener?.remove();
|
|
19
|
-
|
|
18
|
+
_api.AudioManager.observeVolumeChanges(false);
|
|
20
19
|
};
|
|
21
20
|
}, []);
|
|
22
21
|
return volume;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","
|
|
1
|
+
{"version":3,"names":["_react","require","_api","useSystemVolume","volume","setVolume","useState","useEffect","AudioManager","observeVolumeChanges","listener","addSystemEventListener","e","parseFloat","value","toFixed","remove"],"sourceRoot":"../../../src","sources":["hooks/useSystemVolume.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,IAAA,GAAAD,OAAA;AAEe,SAASE,eAAeA,CAAA,EAAG;EACxC,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAG,IAAAC,eAAQ,EAAC,CAAC,CAAC;EAEvC,IAAAC,gBAAS,EAAC,MAAM;IACdC,iBAAY,CAACC,oBAAoB,CAAC,IAAI,CAAC;IACvC,MAAMC,QAAQ,GAAGF,iBAAY,CAACG,sBAAsB,CAClD,cAAc,EACbC,CAAC,IAAK;MACLP,SAAS,CAACQ,UAAU,CAACD,CAAC,CAACE,KAAK,CAACC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,CACF,CAAC;IAED,OAAO,MAAM;MACXL,QAAQ,EAAEM,MAAM,CAAC,CAAC;MAClBR,iBAAY,CAACC,oBAAoB,CAAC,KAAK,CAAC;IAC1C,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,OAAOL,MAAM;AACf","ignoreList":[]}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -14,4 +14,15 @@ Object.keys(_api).forEach(function (key) {
|
|
|
14
14
|
}
|
|
15
15
|
});
|
|
16
16
|
});
|
|
17
|
+
var _hooks = require("./hooks");
|
|
18
|
+
Object.keys(_hooks).forEach(function (key) {
|
|
19
|
+
if (key === "default" || key === "__esModule") return;
|
|
20
|
+
if (key in exports && exports[key] === _hooks[key]) return;
|
|
21
|
+
Object.defineProperty(exports, key, {
|
|
22
|
+
enumerable: true,
|
|
23
|
+
get: function () {
|
|
24
|
+
return _hooks[key];
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
});
|
|
17
28
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_api","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;AAAA,IAAAA,IAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,IAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,IAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,IAAA,CAAAK,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_api","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_hooks"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;AAAA,IAAAA,IAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,IAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,IAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,IAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AAKA,IAAAK,MAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,MAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,MAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,MAAA,CAAAL,GAAA;IAAA;EAAA;AAAA","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;AAEb,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;AAEb,IAAAC,YAAA,GAAAC,OAAA;AA8CA,MAAMF,oBAAoB,GAAAF,OAAA,CAAAE,oBAAA,GAAGG,gCAAmB,CAACC,GAAG,CAAO,gBAAgB,CAAE","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["mockAsync","value","Promise","resolve","mockSync","NativeAudioAPIModule","exports","install","getDevicePreferredSampleRate","setAudioSessionActivity","setAudioSessionOptions","disableSessionManagement","observeAudioInterruptions","activelyReclaimSession","observeVolumeChanges","requestRecordingPermissions","checkRecordingPermissions","requestNotificationPermissions","checkNotificationPermissions","getDevicesInfo","availableInputs","availableOutputs","currentInputs","currentOutputs","showNotification","success","hideNotification","isNotificationActive"],"sourceRoot":"../../../src","sources":["specs/NativeAudioAPIModule.web.ts"],"mappings":";;;;;;AAGA;;
|
|
1
|
+
{"version":3,"names":["mockAsync","value","Promise","resolve","mockSync","NativeAudioAPIModule","exports","install","getDevicePreferredSampleRate","setAudioSessionActivity","setAudioSessionOptions","disableSessionManagement","observeAudioInterruptions","activelyReclaimSession","observeVolumeChanges","requestRecordingPermissions","checkRecordingPermissions","requestNotificationPermissions","checkNotificationPermissions","getDevicesInfo","availableInputs","availableOutputs","currentInputs","currentOutputs","setInputDevice","showNotification","success","hideNotification","isNotificationActive"],"sourceRoot":"../../../src","sources":["specs/NativeAudioAPIModule.web.ts"],"mappings":";;;;;;AAGA;;AA8CA,MAAMA,SAAS,GACTC,KAAQ,IACZ,MACEC,OAAO,CAACC,OAAO,CAACF,KAAK,CAAC;AAC1B,MAAMG,QAAQ,GACRH,KAAQ,IACZ,MACEA,KAAK;AAET,MAAMI,oBAA0B,GAAAC,OAAA,CAAAD,oBAAA,GAAG;EACjCE,OAAO,EAAEH,QAAQ,CAAC,IAAI,CAAC;EACvBI,4BAA4B,EAAEJ,QAAQ,CAAC,CAAC,CAAC;EACzCK,uBAAuB,EAAET,SAAS,CAAC,IAAI,CAAC;EACxCU,sBAAsB,EAAEN,QAAQ,CAAC,CAAC,CAAC,CAAC;EACpCO,wBAAwB,EAAEP,QAAQ,CAAC,CAAC,CAAC,CAAC;EACtCQ,yBAAyB,EAAER,QAAQ,CAAC,CAAC,CAAC,CAAC;EACvCS,sBAAsB,EAAET,QAAQ,CAAC,CAAC,CAAC,CAAC;EACpCU,oBAAoB,EAAEV,QAAQ,CAAC,CAAC,CAAC,CAAC;EAClCW,2BAA2B,EAAEf,SAAS,CAAC,SAA6B,CAAC;EACrEgB,yBAAyB,EAAEhB,SAAS,CAAC,SAA6B,CAAC;EACnEiB,8BAA8B,EAAEjB,SAAS,CAAC,SAA6B,CAAC;EACxEkB,4BAA4B,EAAElB,SAAS,CAAC,SAA6B,CAAC;EACtEmB,cAAc,EAAEnB,SAAS,CAAC;IACxBoB,eAAe,EAAE,EAAE;IACnBC,gBAAgB,EAAE,EAAE;IACpBC,aAAa,EAAE,EAAE;IACjBC,cAAc,EAAE;EAClB,CAAC,CAAC;EACFC,cAAc,EAAExB,SAAS,CAAC,IAAI,CAAC;EAC/ByB,gBAAgB,EAAEzB,SAAS,CAAC;IAAE0B,OAAO,EAAE;EAAK,CAAC,CAAC;EAC9CC,gBAAgB,EAAE3B,SAAS,CAAC;IAAE0B,OAAO,EAAE;EAAK,CAAC,CAAC;EAC9CE,oBAAoB,EAAE5B,SAAS,CAAC,KAAK;AACvC,CAAC","ignoreList":[]}
|
|
@@ -69,6 +69,9 @@ class AudioManager {
|
|
|
69
69
|
async getDevicesInfo() {
|
|
70
70
|
return _specs.NativeAudioAPIModule.getDevicesInfo();
|
|
71
71
|
}
|
|
72
|
+
async setInputDevice(deviceId) {
|
|
73
|
+
return _specs.NativeAudioAPIModule.setInputDevice(deviceId);
|
|
74
|
+
}
|
|
72
75
|
}
|
|
73
76
|
var _default = exports.default = new AudioManager();
|
|
74
77
|
//# sourceMappingURL=AudioManager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_events","require","_specs","_errors","AudioManager","constructor","audioEventEmitter","AudioEventEmitter","global","getDevicePreferredSampleRate","NativeAudioAPIModule","setAudioSessionActivity","enabled","success","error","parseNativeError","setAudioSessionOptions","options","iosCategory","iosMode","iosOptions","iosAllowHaptics","disableSessionManagement","observeAudioInterruptions","activelyReclaimSession","observeVolumeChanges","addSystemEventListener","name","callback","addAudioEventListener","requestRecordingPermissions","checkRecordingPermissions","requestNotificationPermissions","checkNotificationPermissions","getDevicesInfo","_default","exports","default"],"sourceRoot":"../../../src","sources":["system/AudioManager.ts"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAEA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AAQA,MAAMG,YAAY,CAA0B;EAE1CC,WAAWA,CAAA,EAAG;IACZ,IAAI,CAACC,iBAAiB,GAAG,IAAIC,yBAAiB,CAACC,MAAM,CAACD,iBAAiB,CAAC;EAC1E;EAEAE,4BAA4BA,CAAA,EAAW;IACrC,OAAOC,2BAAoB,CAACD,4BAA4B,CAAC,CAAC;EAC5D;EAEA,MAAME,uBAAuBA,CAACC,OAAgB,EAAoB;IAChE,IAAI;MACF,MAAMC,OAAO,GACX,MAAMH,2BAAoB,CAACC,uBAAuB,CAACC,OAAO,CAAC;MAE7D,OAAOC,OAAO;IAChB,CAAC,CAAC,OAAOC,KAAK,EAAE;MACd,MAAM,IAAAC,wBAAgB,EAACD,KAAK,CAAC;IAC/B;EACF;EAEAE,sBAAsBA,CAACC,OAAuB,EAAE;IAC9CP,2BAAoB,CAACM,sBAAsB,CACzCC,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,wBAAwBA,CAAA,EAAG;IACzBZ,2BAAoB,CAACY,wBAAwB,CAAC,CAAC;EACjD;EAEAC,yBAAyBA,CAACX,OAAgB,EAAE;IAC1CF,2BAAoB,CAACa,yBAAyB,CAACX,OAAO,CAAC;EACzD;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEY,sBAAsBA,CAACZ,OAAgB,EAAE;IACvCF,2BAAoB,CAACc,sBAAsB,CAACZ,OAAO,CAAC;EACtD;EAEAa,oBAAoBA,CAACb,OAAgB,EAAE;IACrCF,2BAAoB,CAACe,oBAAoB,CAACb,OAAO,CAAC;EACpD;EAEAc,sBAAsBA,CACpBC,IAAU,EACVC,QAAmC,EACX;IACxB,OAAO,IAAI,CAACtB,iBAAiB,CAACuB,qBAAqB,CAACF,IAAI,EAAEC,QAAQ,CAAC;EACrE;EAEA,MAAME,2BAA2BA,CAAA,EAA8B;IAC7D,OAAOpB,2BAAoB,CAACoB,2BAA2B,CAAC,CAAC;EAC3D;EAEA,MAAMC,yBAAyBA,CAAA,EAA8B;IAC3D,OAAOrB,2BAAoB,CAACqB,yBAAyB,CAAC,CAAC;EACzD;EAEA,MAAMC,8BAA8BA,CAAA,EAA8B;IAChE,OAAOtB,2BAAoB,CAACsB,8BAA8B,CAAC,CAAC;EAC9D;EAEA,MAAMC,4BAA4BA,CAAA,EAA8B;IAC9D,OAAOvB,2BAAoB,CAACuB,4BAA4B,CAAC,CAAC;EAC5D;EAEA,MAAMC,cAAcA,CAAA,EAA8B;IAChD,OAAOxB,2BAAoB,CAACwB,cAAc,CAAC,CAAC;EAC9C;AACF;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEc,
|
|
1
|
+
{"version":3,"names":["_events","require","_specs","_errors","AudioManager","constructor","audioEventEmitter","AudioEventEmitter","global","getDevicePreferredSampleRate","NativeAudioAPIModule","setAudioSessionActivity","enabled","success","error","parseNativeError","setAudioSessionOptions","options","iosCategory","iosMode","iosOptions","iosAllowHaptics","disableSessionManagement","observeAudioInterruptions","activelyReclaimSession","observeVolumeChanges","addSystemEventListener","name","callback","addAudioEventListener","requestRecordingPermissions","checkRecordingPermissions","requestNotificationPermissions","checkNotificationPermissions","getDevicesInfo","setInputDevice","deviceId","_default","exports","default"],"sourceRoot":"../../../src","sources":["system/AudioManager.ts"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAEA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AAQA,MAAMG,YAAY,CAA0B;EAE1CC,WAAWA,CAAA,EAAG;IACZ,IAAI,CAACC,iBAAiB,GAAG,IAAIC,yBAAiB,CAACC,MAAM,CAACD,iBAAiB,CAAC;EAC1E;EAEAE,4BAA4BA,CAAA,EAAW;IACrC,OAAOC,2BAAoB,CAACD,4BAA4B,CAAC,CAAC;EAC5D;EAEA,MAAME,uBAAuBA,CAACC,OAAgB,EAAoB;IAChE,IAAI;MACF,MAAMC,OAAO,GACX,MAAMH,2BAAoB,CAACC,uBAAuB,CAACC,OAAO,CAAC;MAE7D,OAAOC,OAAO;IAChB,CAAC,CAAC,OAAOC,KAAK,EAAE;MACd,MAAM,IAAAC,wBAAgB,EAACD,KAAK,CAAC;IAC/B;EACF;EAEAE,sBAAsBA,CAACC,OAAuB,EAAE;IAC9CP,2BAAoB,CAACM,sBAAsB,CACzCC,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,wBAAwBA,CAAA,EAAG;IACzBZ,2BAAoB,CAACY,wBAAwB,CAAC,CAAC;EACjD;EAEAC,yBAAyBA,CAACX,OAAgB,EAAE;IAC1CF,2BAAoB,CAACa,yBAAyB,CAACX,OAAO,CAAC;EACzD;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEY,sBAAsBA,CAACZ,OAAgB,EAAE;IACvCF,2BAAoB,CAACc,sBAAsB,CAACZ,OAAO,CAAC;EACtD;EAEAa,oBAAoBA,CAACb,OAAgB,EAAE;IACrCF,2BAAoB,CAACe,oBAAoB,CAACb,OAAO,CAAC;EACpD;EAEAc,sBAAsBA,CACpBC,IAAU,EACVC,QAAmC,EACX;IACxB,OAAO,IAAI,CAACtB,iBAAiB,CAACuB,qBAAqB,CAACF,IAAI,EAAEC,QAAQ,CAAC;EACrE;EAEA,MAAME,2BAA2BA,CAAA,EAA8B;IAC7D,OAAOpB,2BAAoB,CAACoB,2BAA2B,CAAC,CAAC;EAC3D;EAEA,MAAMC,yBAAyBA,CAAA,EAA8B;IAC3D,OAAOrB,2BAAoB,CAACqB,yBAAyB,CAAC,CAAC;EACzD;EAEA,MAAMC,8BAA8BA,CAAA,EAA8B;IAChE,OAAOtB,2BAAoB,CAACsB,8BAA8B,CAAC,CAAC;EAC9D;EAEA,MAAMC,4BAA4BA,CAAA,EAA8B;IAC9D,OAAOvB,2BAAoB,CAACuB,4BAA4B,CAAC,CAAC;EAC5D;EAEA,MAAMC,cAAcA,CAAA,EAA8B;IAChD,OAAOxB,2BAAoB,CAACwB,cAAc,CAAC,CAAC;EAC9C;EAEA,MAAMC,cAAcA,CAACC,QAAgB,EAAoB;IACvD,OAAO1B,2BAAoB,CAACyB,cAAc,CAACC,QAAQ,CAAC;EACtD;AACF;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEc,IAAInC,YAAY,CAAC,CAAC","ignoreList":[]}
|
|
@@ -19,6 +19,7 @@ class AudioManager {
|
|
|
19
19
|
checkRecordingPermissions = mockAsync('Granted');
|
|
20
20
|
requestNotificationPermissions = mockAsync('Granted');
|
|
21
21
|
checkNotificationPermissions = mockAsync('Granted');
|
|
22
|
+
setInputDevice = mockAsync(true);
|
|
22
23
|
getDevicesInfo = mockAsync({
|
|
23
24
|
availableInputs: [],
|
|
24
25
|
availableOutputs: [],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["mockAsync","value","Promise","resolve","mockSync","AudioManager","getDevicePreferredSampleRate","setAudioSessionActivity","setAudioSessionOptions","disableSessionManagement","observeAudioInterruptions","activelyReclaimSession","observeVolumeChanges","addSystemEventListener","undefined","requestRecordingPermissions","checkRecordingPermissions","requestNotificationPermissions","checkNotificationPermissions","getDevicesInfo","availableInputs","availableOutputs","currentInputs","currentOutputs","_default","exports","default"],"sourceRoot":"../../../src","sources":["web-system/AudioManager.ts"],"mappings":";;;;;;AAEA,MAAMA,SAAS,GACTC,KAAQ,IACZ,MACEC,OAAO,CAACC,OAAO,CAACF,KAAK,CAAC;AAC1B,MAAMG,QAAQ,GACRH,KAAQ,IACZ,MACEA,KAAK;AAET,MAAMI,YAAY,CAA0B;EAC1CC,4BAA4B,GAAGF,QAAQ,CAAC,KAAK,CAAC;EAC9CG,uBAAuB,GAAGP,SAAS,CAAC,IAAI,CAAC;EACzCQ,sBAAsB,GAAGJ,QAAQ,CAAC,CAAC,CAAC,CAAC;EACrCK,wBAAwB,GAAGL,QAAQ,CAAC,CAAC,CAAC,CAAC;EACvCM,yBAAyB,GAAGN,QAAQ,CAAC,IAAI,CAAC;EAC1CO,sBAAsB,GAAGP,QAAQ,CAAC,CAAC,CAAC,CAAC;EACrCQ,oBAAoB,GAAGR,QAAQ,CAAC,CAAC,CAAC,CAAC;EACnCS,sBAAsB,GAAGT,QAAQ,CAACU,SAAS,CAAC;EAC5CC,2BAA2B,GAAGf,SAAS,CAAC,SAA6B,CAAC;EACtEgB,yBAAyB,GAAGhB,SAAS,CAAC,SAA6B,CAAC;EACpEiB,8BAA8B,GAAGjB,SAAS,CAAC,SAA6B,CAAC;EACzEkB,4BAA4B,GAAGlB,SAAS,CAAC,SAA6B,CAAC;EACvEmB,cAAc,GAAGnB,SAAS,CAAC;
|
|
1
|
+
{"version":3,"names":["mockAsync","value","Promise","resolve","mockSync","AudioManager","getDevicePreferredSampleRate","setAudioSessionActivity","setAudioSessionOptions","disableSessionManagement","observeAudioInterruptions","activelyReclaimSession","observeVolumeChanges","addSystemEventListener","undefined","requestRecordingPermissions","checkRecordingPermissions","requestNotificationPermissions","checkNotificationPermissions","setInputDevice","getDevicesInfo","availableInputs","availableOutputs","currentInputs","currentOutputs","_default","exports","default"],"sourceRoot":"../../../src","sources":["web-system/AudioManager.ts"],"mappings":";;;;;;AAEA,MAAMA,SAAS,GACTC,KAAQ,IACZ,MACEC,OAAO,CAACC,OAAO,CAACF,KAAK,CAAC;AAC1B,MAAMG,QAAQ,GACRH,KAAQ,IACZ,MACEA,KAAK;AAET,MAAMI,YAAY,CAA0B;EAC1CC,4BAA4B,GAAGF,QAAQ,CAAC,KAAK,CAAC;EAC9CG,uBAAuB,GAAGP,SAAS,CAAC,IAAI,CAAC;EACzCQ,sBAAsB,GAAGJ,QAAQ,CAAC,CAAC,CAAC,CAAC;EACrCK,wBAAwB,GAAGL,QAAQ,CAAC,CAAC,CAAC,CAAC;EACvCM,yBAAyB,GAAGN,QAAQ,CAAC,IAAI,CAAC;EAC1CO,sBAAsB,GAAGP,QAAQ,CAAC,CAAC,CAAC,CAAC;EACrCQ,oBAAoB,GAAGR,QAAQ,CAAC,CAAC,CAAC,CAAC;EACnCS,sBAAsB,GAAGT,QAAQ,CAACU,SAAS,CAAC;EAC5CC,2BAA2B,GAAGf,SAAS,CAAC,SAA6B,CAAC;EACtEgB,yBAAyB,GAAGhB,SAAS,CAAC,SAA6B,CAAC;EACpEiB,8BAA8B,GAAGjB,SAAS,CAAC,SAA6B,CAAC;EACzEkB,4BAA4B,GAAGlB,SAAS,CAAC,SAA6B,CAAC;EACvEmB,cAAc,GAAGnB,SAAS,CAAC,IAAI,CAAC;EAChCoB,cAAc,GAAGpB,SAAS,CAAC;IACzBqB,eAAe,EAAE,EAAE;IACnBC,gBAAgB,EAAE,EAAE;IACpBC,aAAa,EAAE,EAAE;IACjBC,cAAc,EAAE;EAClB,CAAC,CAAC;AACJ;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEc,IAAItB,YAAY,CAAC,CAAC","ignoreList":[]}
|