nosnia-audio-recorder 0.8.7 → 0.8.9
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.
|
@@ -35,28 +35,44 @@ class NosniaAudioRecorderModule(private val reactContext: ReactApplicationContex
|
|
|
35
35
|
private val progressHandler = Handler(Looper.getMainLooper())
|
|
36
36
|
private val progressRunnable = object : Runnable {
|
|
37
37
|
override fun run() {
|
|
38
|
-
if (isRecording && !isPaused) {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
38
|
+
if (isRecording && !isPaused && mediaRecorder != null) {
|
|
39
|
+
try {
|
|
40
|
+
// Use actual MediaRecorder max amplitude for duration tracking
|
|
41
|
+
// Android MediaRecorder doesn't expose duration while recording,
|
|
42
|
+
// so we calculate elapsed time from start
|
|
43
|
+
val currentTime = System.currentTimeMillis()
|
|
44
|
+
val duration = currentTime - startTime - pausedDuration
|
|
45
|
+
|
|
46
|
+
android.util.Log.d("NosniaAudioRecorder", "Progress: duration=$duration, isRecording=true")
|
|
47
|
+
|
|
48
|
+
sendEvent("onRecordingProgress", Arguments.createMap().apply {
|
|
49
|
+
putDouble("duration", duration.toDouble())
|
|
50
|
+
putBoolean("isRecording", true)
|
|
51
|
+
})
|
|
52
|
+
|
|
53
|
+
progressHandler.postDelayed(this, 100) // Update every 100ms
|
|
54
|
+
} catch (e: Exception) {
|
|
55
|
+
android.util.Log.e("NosniaAudioRecorder", "Error in progress callback: ${e.message}", e)
|
|
56
|
+
// Continue despite errors
|
|
57
|
+
progressHandler.postDelayed(this, 100)
|
|
58
|
+
}
|
|
48
59
|
}
|
|
49
60
|
}
|
|
50
|
-
|
|
51
|
-
private fun sendEvent(eventName: String, params: WritableMap?) {
|
|
52
|
-
reactContext
|
|
53
|
-
.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java)
|
|
54
|
-
.emit(eventName, params)
|
|
55
61
|
}
|
|
56
62
|
|
|
57
|
-
private fun
|
|
63
|
+
private fun sendEvent(eventName: String, params: WritableMap?) {
|
|
64
|
+
try {
|
|
65
|
+
reactContext
|
|
66
|
+
.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java)
|
|
67
|
+
.emit(eventName, params)
|
|
68
|
+
} catch (e: Exception) {
|
|
69
|
+
android.util.Log.e("NosniaAudioRecorder", "Error sending event $eventName: ${e.message}", e)
|
|
70
|
+
}
|
|
71
|
+
} private fun startProgressUpdates() {
|
|
72
|
+
android.util.Log.d("NosniaAudioRecorder", "Starting progress updates")
|
|
58
73
|
startTime = System.currentTimeMillis()
|
|
59
74
|
pausedDuration = 0
|
|
75
|
+
// Send initial progress update immediately
|
|
60
76
|
progressHandler.post(progressRunnable)
|
|
61
77
|
}
|
|
62
78
|
|
package/lib/module/index.js
CHANGED
|
@@ -21,12 +21,26 @@ class AudioRecorder {
|
|
|
21
21
|
* @returns Function to remove the listener
|
|
22
22
|
*/
|
|
23
23
|
addRecordingProgressListener(callback) {
|
|
24
|
+
// Log for debugging
|
|
25
|
+
console.log('[AudioRecorder] Adding recording progress listener');
|
|
26
|
+
|
|
24
27
|
// Remove existing listener if any
|
|
25
28
|
if (this.progressListener) {
|
|
29
|
+
console.log('[AudioRecorder] Removing existing listener');
|
|
26
30
|
this.progressListener.remove();
|
|
31
|
+
this.progressListener = null;
|
|
32
|
+
}
|
|
33
|
+
try {
|
|
34
|
+
this.progressListener = this.eventEmitter.addListener('onRecordingProgress', data => {
|
|
35
|
+
console.log('[AudioRecorder] Progress event received:', data);
|
|
36
|
+
callback(data);
|
|
37
|
+
});
|
|
38
|
+
console.log('[AudioRecorder] Listener added successfully');
|
|
39
|
+
} catch (error) {
|
|
40
|
+
console.error('[AudioRecorder] Error adding listener:', error);
|
|
27
41
|
}
|
|
28
|
-
this.progressListener = this.eventEmitter.addListener('onRecordingProgress', data => callback(data));
|
|
29
42
|
return () => {
|
|
43
|
+
console.log('[AudioRecorder] Removing listener via cleanup function');
|
|
30
44
|
if (this.progressListener) {
|
|
31
45
|
this.progressListener.remove();
|
|
32
46
|
this.progressListener = null;
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeEventEmitter","NativeModules","NativeModule","AudioRecorder","instance","progressListener","constructor","eventEmitter","NosniaAudioRecorder","getInstance","addRecordingProgressListener","callback","remove","addListener","data","removeRecordingProgressListener","requestPermission","requestAudioPermission","
|
|
1
|
+
{"version":3,"names":["NativeEventEmitter","NativeModules","NativeModule","AudioRecorder","instance","progressListener","constructor","eventEmitter","NosniaAudioRecorder","getInstance","addRecordingProgressListener","callback","console","log","remove","addListener","data","error","removeRecordingProgressListener","requestPermission","requestAudioPermission","checkPermission","checkAudioPermission","startRecording","options","hasPermission","Error","config","bitrate","channels","sampleRate","stopRecording","pauseRecording","resumeRecording","cancelRecording","getStatus","getRecorderStatus","NosniaAudioPlayer"],"sourceRoot":"..\\..\\src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -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;IAMP,MAAM,CAAC,WAAW,IAAI,aAAa;IAOnC;;;;OAIG;IACH,4BAA4B,CAC1B,QAAQ,EAAE,yBAAyB,GAClC,MAAM,IAAI;
|
|
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;IAMP,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;CAQ3C;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
package/src/index.tsx
CHANGED
|
@@ -37,17 +37,31 @@ class AudioRecorder {
|
|
|
37
37
|
addRecordingProgressListener(
|
|
38
38
|
callback: RecordingProgressCallback
|
|
39
39
|
): () => void {
|
|
40
|
+
// Log for debugging
|
|
41
|
+
console.log('[AudioRecorder] Adding recording progress listener');
|
|
42
|
+
|
|
40
43
|
// Remove existing listener if any
|
|
41
44
|
if (this.progressListener) {
|
|
45
|
+
console.log('[AudioRecorder] Removing existing listener');
|
|
42
46
|
this.progressListener.remove();
|
|
47
|
+
this.progressListener = null;
|
|
43
48
|
}
|
|
44
49
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
50
|
+
try {
|
|
51
|
+
this.progressListener = this.eventEmitter.addListener(
|
|
52
|
+
'onRecordingProgress',
|
|
53
|
+
(data: any) => {
|
|
54
|
+
console.log('[AudioRecorder] Progress event received:', data);
|
|
55
|
+
callback(data);
|
|
56
|
+
}
|
|
57
|
+
);
|
|
58
|
+
console.log('[AudioRecorder] Listener added successfully');
|
|
59
|
+
} catch (error) {
|
|
60
|
+
console.error('[AudioRecorder] Error adding listener:', error);
|
|
61
|
+
}
|
|
49
62
|
|
|
50
63
|
return () => {
|
|
64
|
+
console.log('[AudioRecorder] Removing listener via cleanup function');
|
|
51
65
|
if (this.progressListener) {
|
|
52
66
|
this.progressListener.remove();
|
|
53
67
|
this.progressListener = null;
|