nosnia-audio-recorder 0.9.0 → 0.9.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ios/NosniaAudioRecorder.mm +22 -5
- package/lib/module/NativeNosniaAudioRecorder.js.map +1 -1
- package/lib/module/index.js +12 -0
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/src/NativeNosniaAudioRecorder.d.ts +1 -0
- package/lib/typescript/src/NativeNosniaAudioRecorder.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +4 -0
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/NativeNosniaAudioRecorder.ts +1 -0
- package/src/index.tsx +19 -4
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
#import <AVFoundation/AVFoundation.h>
|
|
3
3
|
#import <React/RCTBridgeModule.h>
|
|
4
4
|
#import <React/RCTEventEmitter.h>
|
|
5
|
+
#import <React/RCTLog.h>
|
|
5
6
|
|
|
6
7
|
@interface NosniaAudioRecorder () <AVAudioRecorderDelegate>
|
|
7
8
|
@property (nonatomic, strong) AVAudioRecorder *audioRecorder;
|
|
@@ -20,11 +21,16 @@
|
|
|
20
21
|
|
|
21
22
|
RCT_EXPORT_MODULE(NosniaAudioRecorder)
|
|
22
23
|
|
|
24
|
+
+ (BOOL)requiresMainQueueSetup {
|
|
25
|
+
return YES;
|
|
26
|
+
}
|
|
27
|
+
|
|
23
28
|
- (instancetype)init {
|
|
24
29
|
self = [super init];
|
|
25
30
|
if (self) {
|
|
26
31
|
_isRecording = NO;
|
|
27
32
|
_hasListeners = NO;
|
|
33
|
+
NSLog(@"[NosniaAudioRecorder] Module initialized");
|
|
28
34
|
}
|
|
29
35
|
return self;
|
|
30
36
|
}
|
|
@@ -53,10 +59,10 @@ RCT_EXPORT_MODULE(NosniaAudioRecorder)
|
|
|
53
59
|
_progressTimer = [NSTimer scheduledTimerWithTimeInterval:0.1
|
|
54
60
|
repeats:YES
|
|
55
61
|
block:^(NSTimer * _Nonnull timer) {
|
|
56
|
-
NSLog(@"[NosniaAudioRecorder] Progress timer fired -
|
|
57
|
-
self->
|
|
62
|
+
NSLog(@"[NosniaAudioRecorder] Progress timer fired - audioRecorder: %@, isRecording: %d",
|
|
63
|
+
self->_audioRecorder ? @"yes" : @"no", self->_isRecording);
|
|
58
64
|
|
|
59
|
-
if (self->
|
|
65
|
+
if (self->_audioRecorder && self->_isRecording) {
|
|
60
66
|
NSTimeInterval currentTime = self->_audioRecorder.currentTime;
|
|
61
67
|
NSLog(@"[NosniaAudioRecorder] Sending progress: duration=%f ms", currentTime * 1000);
|
|
62
68
|
|
|
@@ -66,8 +72,8 @@ RCT_EXPORT_MODULE(NosniaAudioRecorder)
|
|
|
66
72
|
@"isRecording": @(self->_audioRecorder.isRecording)
|
|
67
73
|
}];
|
|
68
74
|
} else {
|
|
69
|
-
NSLog(@"[NosniaAudioRecorder] Skipping event:
|
|
70
|
-
self->
|
|
75
|
+
NSLog(@"[NosniaAudioRecorder] Skipping event: audioRecorder=%@, isRecording=%d",
|
|
76
|
+
self->_audioRecorder ? @"yes" : @"no", self->_isRecording);
|
|
71
77
|
}
|
|
72
78
|
}];
|
|
73
79
|
}
|
|
@@ -118,6 +124,17 @@ RCT_EXPORT_MODULE(NosniaAudioRecorder)
|
|
|
118
124
|
return [NSString stringWithFormat:@"recording_%@.m4a", timestamp];
|
|
119
125
|
}
|
|
120
126
|
|
|
127
|
+
RCT_EXPORT_METHOD(testEventEmitter) {
|
|
128
|
+
NSLog(@"[NosniaAudioRecorder] testEventEmitter called - sending test event");
|
|
129
|
+
NSLog(@"[NosniaAudioRecorder] hasListeners: %d", _hasListeners);
|
|
130
|
+
[self sendEventWithName:@"onRecordingProgress"
|
|
131
|
+
body:@{
|
|
132
|
+
@"duration": @(999.0),
|
|
133
|
+
@"isRecording": @(NO)
|
|
134
|
+
}];
|
|
135
|
+
NSLog(@"[NosniaAudioRecorder] Test event sent");
|
|
136
|
+
}
|
|
137
|
+
|
|
121
138
|
RCT_EXPORT_METHOD(startRecording:(NSDictionary *)options
|
|
122
139
|
resolve:(RCTPromiseResolveBlock)resolve
|
|
123
140
|
reject:(RCTPromiseRejectBlock)reject) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"..\\..\\src","sources":["NativeNosniaAudioRecorder.ts"],"mappings":";;AAAA,SAASA,mBAAmB,QAA0B,cAAc;
|
|
1
|
+
{"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"..\\..\\src","sources":["NativeNosniaAudioRecorder.ts"],"mappings":";;AAAA,SAASA,mBAAmB,QAA0B,cAAc;AA2BpE,eAAeA,mBAAmB,CAACC,YAAY,CAAO,qBAAqB,CAAC","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -182,6 +182,18 @@ class AudioRecorder {
|
|
|
182
182
|
throw error;
|
|
183
183
|
}
|
|
184
184
|
}
|
|
185
|
+
|
|
186
|
+
/**
|
|
187
|
+
* Test if event emitter is working (iOS/Android debugging)
|
|
188
|
+
*/
|
|
189
|
+
testEventEmitter() {
|
|
190
|
+
try {
|
|
191
|
+
console.log('[AudioRecorder] Calling testEventEmitter');
|
|
192
|
+
NativeModule.testEventEmitter();
|
|
193
|
+
} catch (error) {
|
|
194
|
+
console.error('Error testing event emitter:', error);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
185
197
|
}
|
|
186
198
|
export const NosniaAudioRecorder = AudioRecorder.getInstance();
|
|
187
199
|
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeEventEmitter","NativeModules","NativeModule","AudioRecorder","instance","progressListener","constructor","console","log","nativeModule","NosniaAudioRecorder","Error","eventEmitter","getInstance","addRecordingProgressListener","callback","remove","addListener","data","error","removeRecordingProgressListener","requestPermission","requestAudioPermission","checkPermission","checkAudioPermission","startRecording","options","hasPermission","config","bitrate","channels","sampleRate","stopRecording","pauseRecording","resumeRecording","cancelRecording","getStatus","getRecorderStatus","NosniaAudioPlayer"],"sourceRoot":"..\\..\\src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,kBAAkB,EAAEC,aAAa,QAAQ,cAAc;AAChE,OAAOC,YAAY,MAGZ,gCAA6B;AASpC,MAAMC,aAAa,CAAC;EAClB,OAAeC,QAAQ,GAAyB,IAAI;EAE5CC,gBAAgB,GAAQ,IAAI;EAE5BC,WAAWA,CAAA,EAAG;IACpBC,OAAO,CAACC,GAAG,CAAC,4CAA4C,CAAC;IAEzD,MAAMC,YAAY,GAAGR,aAAa,CAACS,mBAAmB;IACtDH,OAAO,CAACC,GAAG,
|
|
1
|
+
{"version":3,"names":["NativeEventEmitter","NativeModules","NativeModule","AudioRecorder","instance","progressListener","constructor","console","log","nativeModule","NosniaAudioRecorder","Error","eventEmitter","getInstance","addRecordingProgressListener","callback","remove","addListener","data","error","removeRecordingProgressListener","requestPermission","requestAudioPermission","checkPermission","checkAudioPermission","startRecording","options","hasPermission","config","bitrate","channels","sampleRate","stopRecording","pauseRecording","resumeRecording","cancelRecording","getStatus","getRecorderStatus","testEventEmitter","NosniaAudioPlayer"],"sourceRoot":"..\\..\\src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -19,6 +19,7 @@ export interface Spec extends TurboModule {
|
|
|
19
19
|
getRecorderStatus(): Promise<RecorderStatus>;
|
|
20
20
|
requestAudioPermission(): Promise<boolean>;
|
|
21
21
|
checkAudioPermission(): Promise<boolean>;
|
|
22
|
+
testEventEmitter(): void;
|
|
22
23
|
}
|
|
23
24
|
declare const _default: Spec;
|
|
24
25
|
export default _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NativeNosniaAudioRecorder.d.ts","sourceRoot":"","sources":["../../../src/NativeNosniaAudioRecorder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAErE,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACjC,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,iBAAiB,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC;IAC7C,sBAAsB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3C,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"NativeNosniaAudioRecorder.d.ts","sourceRoot":"","sources":["../../../src/NativeNosniaAudioRecorder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAErE,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACjC,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,iBAAiB,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC;IAC7C,sBAAsB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3C,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IACzC,gBAAgB,IAAI,IAAI,CAAC;CAC1B;;AAED,wBAA6E"}
|
|
@@ -61,6 +61,10 @@ declare class AudioRecorder {
|
|
|
61
61
|
* @returns Promise that resolves to the current recorder status
|
|
62
62
|
*/
|
|
63
63
|
getStatus(): Promise<RecorderStatus>;
|
|
64
|
+
/**
|
|
65
|
+
* Test if event emitter is working (iOS/Android debugging)
|
|
66
|
+
*/
|
|
67
|
+
testEventEmitter(): void;
|
|
64
68
|
}
|
|
65
69
|
export declare const NosniaAudioRecorder: AudioRecorder;
|
|
66
70
|
export { NosniaAudioPlayer, type PlayOptions, type PlayerStatus, type PlaybackProgressCallback, type PlaybackCompleteCallback, } from './AudioPlayer';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AACA,OAAqB,EACnB,KAAK,eAAe,EACpB,KAAK,cAAc,EACpB,MAAM,6BAA6B,CAAC;AAErC,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,CAAC;AAEhD,MAAM,MAAM,yBAAyB,GAAG,CAAC,IAAI,EAAE;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;CACtB,KAAK,IAAI,CAAC;AAEX,cAAM,aAAa;IACjB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA8B;IACrD,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,gBAAgB,CAAa;IAErC,OAAO;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AACA,OAAqB,EACnB,KAAK,eAAe,EACpB,KAAK,cAAc,EACpB,MAAM,6BAA6B,CAAC;AAErC,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,CAAC;AAEhD,MAAM,MAAM,yBAAyB,GAAG,CAAC,IAAI,EAAE;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;CACtB,KAAK,IAAI,CAAC;AAEX,cAAM,aAAa;IACjB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA8B;IACrD,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,gBAAgB,CAAa;IAErC,OAAO;IAiBP,MAAM,CAAC,WAAW,IAAI,aAAa;IAOnC;;;;OAIG;IACH,4BAA4B,CAC1B,QAAQ,EAAE,yBAAyB,GAClC,MAAM,IAAI;IAiCb;;OAEG;IACH,+BAA+B,IAAI,IAAI;IAOvC;;;OAGG;IACG,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC;IAS3C;;;OAGG;IACG,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IASzC;;;;OAIG;IACG,cAAc,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAuB9D;;;OAGG;IACG,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;IAStC;;;OAGG;IACG,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IASrC;;;OAGG;IACG,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAStC;;;OAGG;IACG,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAStC;;;OAGG;IACG,SAAS,IAAI,OAAO,CAAC,cAAc,CAAC;IAS1C;;OAEG;IACH,gBAAgB,IAAI,IAAI;CAQzB;AAED,eAAO,MAAM,mBAAmB,eAA8B,CAAC;AAG/D,OAAO,EACL,iBAAiB,EACjB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,GAC9B,MAAM,eAAe,CAAC"}
|
package/package.json
CHANGED
|
@@ -22,6 +22,7 @@ export interface Spec extends TurboModule {
|
|
|
22
22
|
getRecorderStatus(): Promise<RecorderStatus>;
|
|
23
23
|
requestAudioPermission(): Promise<boolean>;
|
|
24
24
|
checkAudioPermission(): Promise<boolean>;
|
|
25
|
+
testEventEmitter(): void;
|
|
25
26
|
}
|
|
26
27
|
|
|
27
28
|
export default TurboModuleRegistry.getEnforcing<Spec>('NosniaAudioRecorder');
|
package/src/index.tsx
CHANGED
|
@@ -18,14 +18,17 @@ class AudioRecorder {
|
|
|
18
18
|
|
|
19
19
|
private constructor() {
|
|
20
20
|
console.log('[AudioRecorder] Initializing AudioRecorder');
|
|
21
|
-
|
|
21
|
+
|
|
22
22
|
const nativeModule = NativeModules.NosniaAudioRecorder;
|
|
23
|
-
console.log(
|
|
24
|
-
|
|
23
|
+
console.log(
|
|
24
|
+
'[AudioRecorder] NativeModules.NosniaAudioRecorder:',
|
|
25
|
+
nativeModule ? 'exists' : 'NOT FOUND'
|
|
26
|
+
);
|
|
27
|
+
|
|
25
28
|
if (!nativeModule) {
|
|
26
29
|
throw new Error('NosniaAudioRecorder native module not found');
|
|
27
30
|
}
|
|
28
|
-
|
|
31
|
+
|
|
29
32
|
this.eventEmitter = new NativeEventEmitter(nativeModule);
|
|
30
33
|
console.log('[AudioRecorder] NativeEventEmitter created');
|
|
31
34
|
}
|
|
@@ -205,6 +208,18 @@ class AudioRecorder {
|
|
|
205
208
|
throw error;
|
|
206
209
|
}
|
|
207
210
|
}
|
|
211
|
+
|
|
212
|
+
/**
|
|
213
|
+
* Test if event emitter is working (iOS/Android debugging)
|
|
214
|
+
*/
|
|
215
|
+
testEventEmitter(): void {
|
|
216
|
+
try {
|
|
217
|
+
console.log('[AudioRecorder] Calling testEventEmitter');
|
|
218
|
+
NativeModule.testEventEmitter();
|
|
219
|
+
} catch (error) {
|
|
220
|
+
console.error('Error testing event emitter:', error);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
208
223
|
}
|
|
209
224
|
|
|
210
225
|
export const NosniaAudioRecorder = AudioRecorder.getInstance();
|