nosnia-audio-recorder 0.9.4 → 0.9.6

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.
@@ -1,5 +1,6 @@
1
1
  #import "NosniaAudioRecorder.h"
2
2
  #import <AVFoundation/AVFoundation.h>
3
+ #import <CoreMedia/CoreMedia.h>
3
4
  #import <React/RCTBridgeModule.h>
4
5
  #import <React/RCTEventEmitter.h>
5
6
  #import <React/RCTLog.h>
@@ -17,6 +18,7 @@
17
18
  BOOL _isRecording;
18
19
  NSTimer *_progressTimer;
19
20
  BOOL _hasListeners;
21
+ CFTimeInterval _recordingStartTime;
20
22
  }
21
23
 
22
24
  RCT_EXPORT_MODULE(NosniaAudioRecorder)
@@ -55,36 +57,47 @@ RCT_EXPORT_MODULE(NosniaAudioRecorder)
55
57
  }
56
58
 
57
59
  NSLog(@"[NosniaAudioRecorder] Starting progress timer");
60
+ NSLog(@"[NosniaAudioRecorder] hasListeners: %d, isRecording: %d, audioRecorder: %@",
61
+ _hasListeners, _isRecording, _audioRecorder ? @"YES" : @"NO");
62
+
63
+ // Record the start time for elapsed time calculation
64
+ _recordingStartTime = CACurrentMediaTime();
58
65
 
59
66
  // Send initial duration event immediately
60
67
  if (_audioRecorder && _isRecording) {
61
- NSTimeInterval currentTime = _audioRecorder.currentTime;
62
- NSLog(@"[NosniaAudioRecorder] Sending initial progress: duration=%f ms", currentTime * 1000);
68
+ double durationMs = 0.0;
69
+ NSLog(@"[NosniaAudioRecorder] Sending initial progress: duration=%f ms (hasListeners=%d)",
70
+ durationMs, _hasListeners);
63
71
 
64
72
  dispatch_async(dispatch_get_main_queue(), ^{
73
+ NSLog(@"[NosniaAudioRecorder] About to send initial event on main thread");
65
74
  [self sendEventWithName:@"onRecordingProgress"
66
75
  body:@{
67
- @"duration": @(currentTime * 1000),
76
+ @"duration": @(durationMs),
68
77
  @"isRecording": @(self->_audioRecorder.isRecording)
69
78
  }];
79
+ NSLog(@"[NosniaAudioRecorder] Initial event sent (hasListeners=%d)", self->_hasListeners);
70
80
  });
71
81
  }
72
82
 
73
83
  _progressTimer = [NSTimer scheduledTimerWithTimeInterval:0.1
74
84
  repeats:YES
75
85
  block:^(NSTimer * _Nonnull timer) {
76
- NSLog(@"[NosniaAudioRecorder] Progress timer fired - audioRecorder: %@, isRecording: %d",
77
- self->_audioRecorder ? @"yes" : @"no", self->_isRecording);
86
+ NSLog(@"[NosniaAudioRecorder] Progress timer fired - hasListeners: %d, audioRecorder: %@, isRecording: %d",
87
+ self->_hasListeners, self->_audioRecorder ? @"yes" : @"no", self->_isRecording);
78
88
 
79
89
  if (self->_audioRecorder && self->_isRecording) {
80
- NSTimeInterval currentTime = self->_audioRecorder.currentTime;
81
- NSLog(@"[NosniaAudioRecorder] Sending progress: duration=%f ms", currentTime * 1000);
90
+ // Use elapsed time instead of currentTime (which doesn't update reliably)
91
+ CFTimeInterval elapsedSeconds = CACurrentMediaTime() - self->_recordingStartTime;
92
+ double durationMs = elapsedSeconds * 1000;
93
+ NSLog(@"[NosniaAudioRecorder] Duration: elapsed=%f seconds, durationMs=%f milliseconds (hasListeners=%d)",
94
+ elapsedSeconds, durationMs, self->_hasListeners);
82
95
 
83
96
  // Ensure event is sent on main thread
84
97
  dispatch_async(dispatch_get_main_queue(), ^{
85
98
  [self sendEventWithName:@"onRecordingProgress"
86
99
  body:@{
87
- @"duration": @(currentTime * 1000),
100
+ @"duration": @(durationMs),
88
101
  @"isRecording": @(self->_audioRecorder.isRecording)
89
102
  }];
90
103
  });
@@ -144,17 +157,30 @@ RCT_EXPORT_MODULE(NosniaAudioRecorder)
144
157
  RCT_EXPORT_METHOD(testEventEmitter) {
145
158
  NSLog(@"[NosniaAudioRecorder] testEventEmitter called - sending test event");
146
159
  NSLog(@"[NosniaAudioRecorder] hasListeners: %d", _hasListeners);
160
+ NSLog(@"[NosniaAudioRecorder] bridge exists: %@", self.bridge ? @"YES" : @"NO");
147
161
 
148
162
  dispatch_async(dispatch_get_main_queue(), ^{
163
+ NSLog(@"[NosniaAudioRecorder] Attempting to send test event from main thread");
149
164
  [self sendEventWithName:@"onRecordingProgress"
150
165
  body:@{
151
166
  @"duration": @(999.0),
152
167
  @"isRecording": @(NO)
153
168
  }];
154
- NSLog(@"[NosniaAudioRecorder] Test event sent from main thread");
169
+ NSLog(@"[NosniaAudioRecorder] Test event sent");
155
170
  });
156
171
  }
157
172
 
173
+ RCT_EXPORT_METHOD(debugInfo:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) {
174
+ NSDictionary *info = @{
175
+ @"hasListeners": @(_hasListeners),
176
+ @"hasBridge": @(self.bridge != nil),
177
+ @"isRecording": @(_isRecording),
178
+ @"moduleStatus": @"OK"
179
+ };
180
+ NSLog(@"[NosniaAudioRecorder] Debug info: %@", info);
181
+ resolve(info);
182
+ }
183
+
158
184
  RCT_EXPORT_METHOD(startRecording:(NSDictionary *)options
159
185
  resolve:(RCTPromiseResolveBlock)resolve
160
186
  reject:(RCTPromiseRejectBlock)reject) {
@@ -1 +1 @@
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":[]}
1
+ {"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"..\\..\\src","sources":["NativeNosniaAudioRecorder.ts"],"mappings":";;AAAA,SAASA,mBAAmB,QAA0B,cAAc;AAkCpE,eAAeA,mBAAmB,CAACC,YAAY,CAAO,qBAAqB,CAAC","ignoreList":[]}
@@ -194,6 +194,22 @@ class AudioRecorder {
194
194
  console.error('Error testing event emitter:', error);
195
195
  }
196
196
  }
197
+
198
+ // Debug method to check module status
199
+ async debugInfo() {
200
+ try {
201
+ if (!NativeModule) {
202
+ console.error('[AudioRecorder] NativeModule bridge not available');
203
+ return null;
204
+ }
205
+ const info = await NativeModule.debugInfo();
206
+ console.log('[AudioRecorder] Debug Info:', info);
207
+ return info;
208
+ } catch (error) {
209
+ console.error('Error getting debug info:', error);
210
+ return null;
211
+ }
212
+ }
197
213
  }
198
214
  export const NosniaAudioRecorder = AudioRecorder.getInstance();
199
215
 
@@ -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","testEventEmitter","NosniaAudioPlayer"],"sourceRoot":"..\\..\\src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
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","debugInfo","info","NosniaAudioPlayer"],"sourceRoot":"..\\..\\src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
@@ -20,6 +20,12 @@ export interface Spec extends TurboModule {
20
20
  requestAudioPermission(): Promise<boolean>;
21
21
  checkAudioPermission(): Promise<boolean>;
22
22
  testEventEmitter(): void;
23
+ debugInfo(): Promise<{
24
+ hasListeners: boolean;
25
+ hasBridge: boolean;
26
+ isRecording: boolean;
27
+ moduleStatus: string;
28
+ }>;
23
29
  }
24
30
  declare const _default: Spec;
25
31
  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;IACzC,gBAAgB,IAAI,IAAI,CAAC;CAC1B;;AAED,wBAA6E"}
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;IAEzB,SAAS,IAAI,OAAO,CAAC;QACnB,YAAY,EAAE,OAAO,CAAC;QACtB,SAAS,EAAE,OAAO,CAAC;QACnB,WAAW,EAAE,OAAO,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC,CAAC;CACJ;;AAED,wBAA6E"}
@@ -65,6 +65,12 @@ declare class AudioRecorder {
65
65
  * Test if event emitter is working (iOS/Android debugging)
66
66
  */
67
67
  testEventEmitter(): void;
68
+ debugInfo(): Promise<{
69
+ hasListeners: boolean;
70
+ hasBridge: boolean;
71
+ isRecording: boolean;
72
+ moduleStatus: string;
73
+ } | null>;
68
74
  }
69
75
  export declare const NosniaAudioRecorder: AudioRecorder;
70
76
  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;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"}
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;IAUlB,SAAS;;;;;;CAchB;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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nosnia-audio-recorder",
3
- "version": "0.9.4",
3
+ "version": "0.9.6",
4
4
  "description": "This is a modern audio recorder which actually works cross platform",
5
5
  "main": "./lib/module/index.js",
6
6
  "types": "./lib/typescript/src/index.d.ts",
@@ -23,6 +23,13 @@ export interface Spec extends TurboModule {
23
23
  requestAudioPermission(): Promise<boolean>;
24
24
  checkAudioPermission(): Promise<boolean>;
25
25
  testEventEmitter(): void;
26
+
27
+ debugInfo(): Promise<{
28
+ hasListeners: boolean;
29
+ hasBridge: boolean;
30
+ isRecording: boolean;
31
+ moduleStatus: string;
32
+ }>;
26
33
  }
27
34
 
28
35
  export default TurboModuleRegistry.getEnforcing<Spec>('NosniaAudioRecorder');
package/src/index.tsx CHANGED
@@ -220,6 +220,22 @@ class AudioRecorder {
220
220
  console.error('Error testing event emitter:', error);
221
221
  }
222
222
  }
223
+
224
+ // Debug method to check module status
225
+ async debugInfo() {
226
+ try {
227
+ if (!NativeModule) {
228
+ console.error('[AudioRecorder] NativeModule bridge not available');
229
+ return null;
230
+ }
231
+ const info = await NativeModule.debugInfo();
232
+ console.log('[AudioRecorder] Debug Info:', info);
233
+ return info;
234
+ } catch (error) {
235
+ console.error('Error getting debug info:', error);
236
+ return null;
237
+ }
238
+ }
223
239
  }
224
240
 
225
241
  export const NosniaAudioRecorder = AudioRecorder.getInstance();