rns-recplay 1.2.7

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.
Files changed (124) hide show
  1. package/README.md +172 -0
  2. package/android/build/.transforms/cdad66fa505a583e6d3a40af343cb85b/results.bin +1 -0
  3. package/android/build/.transforms/cdad66fa505a583e6d3a40af343cb85b/transformed/classes/classes_dex/classes.dex +0 -0
  4. package/android/build/generated/source/buildConfig/debug/com/rnsrecplay/BuildConfig.java +10 -0
  5. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/AndroidManifest.xml +7 -0
  6. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/output-metadata.json +18 -0
  7. package/android/build/intermediates/aar_metadata/debug/writeDebugAarMetadata/aar-metadata.properties +6 -0
  8. package/android/build/intermediates/annotation_processor_list/debug/javaPreCompileDebug/annotationProcessors.json +1 -0
  9. package/android/build/intermediates/compile_library_classes_jar/debug/bundleLibCompileToJarDebug/classes.jar +0 -0
  10. package/android/build/intermediates/compile_r_class_jar/debug/generateDebugRFile/R.jar +0 -0
  11. package/android/build/intermediates/compile_symbol_list/debug/generateDebugRFile/R.txt +0 -0
  12. package/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties +1 -0
  13. package/android/build/intermediates/incremental/debug/packageDebugResources/merger.xml +2 -0
  14. package/android/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml +2 -0
  15. package/android/build/intermediates/incremental/mergeDebugShaders/merger.xml +2 -0
  16. package/android/build/intermediates/incremental/packageDebugAssets/merger.xml +2 -0
  17. package/android/build/intermediates/java_res/debug/processDebugJavaRes/out/META-INF/rns-recplay_debug.kotlin_module +0 -0
  18. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/rnsrecplay/BuildConfig.class +0 -0
  19. package/android/build/intermediates/local_only_symbol_list/debug/parseDebugLocalResources/R-def.txt +2 -0
  20. package/android/build/intermediates/manifest_merge_blame_file/debug/processDebugManifest/manifest-merger-blame-debug-report.txt +7 -0
  21. package/android/build/intermediates/merged_manifest/debug/processDebugManifest/AndroidManifest.xml +7 -0
  22. package/android/build/intermediates/navigation_json/debug/extractDeepLinksDebug/navigation.json +1 -0
  23. package/android/build/intermediates/nested_resources_validation_report/debug/generateDebugResources/nestedResourcesValidationReport.txt +1 -0
  24. package/android/build/intermediates/runtime_library_classes_jar/debug/bundleLibRuntimeToJarDebug/classes.jar +0 -0
  25. package/android/build/intermediates/symbol_list_with_package_name/debug/generateDebugRFile/package-aware-r.txt +1 -0
  26. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab +0 -0
  27. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream +0 -0
  28. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len +0 -0
  29. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.len +0 -0
  30. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at +0 -0
  31. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i +0 -0
  32. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i.len +0 -0
  33. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab +0 -0
  34. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream +0 -0
  35. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len +0 -0
  36. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len +0 -0
  37. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at +0 -0
  38. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i +0 -0
  39. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i.len +0 -0
  40. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab +0 -0
  41. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream +0 -0
  42. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len +0 -0
  43. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len +0 -0
  44. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at +0 -0
  45. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i +0 -0
  46. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len +0 -0
  47. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab +0 -0
  48. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream +0 -0
  49. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len +0 -0
  50. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len +0 -0
  51. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at +0 -0
  52. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i +0 -0
  53. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len +0 -0
  54. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab +0 -0
  55. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream +0 -0
  56. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len +0 -0
  57. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len +0 -0
  58. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at +0 -0
  59. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i +0 -0
  60. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i.len +0 -0
  61. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab +0 -0
  62. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream +0 -0
  63. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len +0 -0
  64. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.len +0 -0
  65. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at +0 -0
  66. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i +0 -0
  67. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len +0 -0
  68. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab +0 -0
  69. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream +0 -0
  70. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len +0 -0
  71. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.len +0 -0
  72. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at +0 -0
  73. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i +0 -0
  74. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i.len +0 -0
  75. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab +0 -0
  76. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream +0 -0
  77. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len +0 -0
  78. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.len +0 -0
  79. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at +0 -0
  80. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i +0 -0
  81. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i.len +0 -0
  82. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/counters.tab +2 -0
  83. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab +0 -0
  84. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream +0 -0
  85. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len +0 -0
  86. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.len +0 -0
  87. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at +0 -0
  88. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i +0 -0
  89. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i.len +0 -0
  90. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab +0 -0
  91. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream +0 -0
  92. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len +0 -0
  93. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len +0 -0
  94. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at +0 -0
  95. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i +0 -0
  96. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i.len +0 -0
  97. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab +0 -0
  98. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream +0 -0
  99. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len +0 -0
  100. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.len +0 -0
  101. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at +0 -0
  102. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i +0 -0
  103. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i.len +0 -0
  104. package/android/build/kotlin/compileDebugKotlin/cacheable/last-build.bin +0 -0
  105. package/android/build/kotlin/compileDebugKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin +0 -0
  106. package/android/build/outputs/logs/manifest-merger-debug-report.txt +16 -0
  107. package/android/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin +0 -0
  108. package/android/build/tmp/kotlin-classes/debug/META-INF/rns-recplay_debug.kotlin_module +0 -0
  109. package/android/build/tmp/kotlin-classes/debug/com/rnsrecplay/RecPlayModule$playAudio$1$1.class +0 -0
  110. package/android/build/tmp/kotlin-classes/debug/com/rnsrecplay/RecPlayModule$playbackRunnable$1.class +0 -0
  111. package/android/build/tmp/kotlin-classes/debug/com/rnsrecplay/RecPlayModule$timerRunnable$1.class +0 -0
  112. package/android/build/tmp/kotlin-classes/debug/com/rnsrecplay/RecPlayModule.class +0 -0
  113. package/android/build/tmp/kotlin-classes/debug/com/rnsrecplay/RecPlayPackage.class +0 -0
  114. package/android/build.gradle +67 -0
  115. package/android/src/main/java/com/rnsrecplay/RecPlayModule.kt +291 -0
  116. package/android/src/main/java/com/rnsrecplay/RecPlayPackage.kt +15 -0
  117. package/app.plugin.js +1 -0
  118. package/index.d.ts +34 -0
  119. package/index.js +67 -0
  120. package/ios/RecPlayModule.m +29 -0
  121. package/ios/RecPlayModule.swift +177 -0
  122. package/package.json +52 -0
  123. package/react-native.config.js +12 -0
  124. package/rns-recplay.podspec +23 -0
package/README.md ADDED
@@ -0,0 +1,172 @@
1
+ # rns-recplay
2
+
3
+ A high-performance React Native module for audio recording and playback with native support for looping, progress tracking, and automatic playback interruption.
4
+
5
+ ---
6
+
7
+ ## Table of Contents
8
+
9
+ - [Features](#features)
10
+ - [Installation](#installation)
11
+ - [Requirements](#requirements)
12
+ - [Permissions (Crucial)](#permissions-crucial)
13
+ - [Usage](#usage)
14
+ - [Recording Example](#recording-example)
15
+ - [Playback Example (with Looping)](#playback-example-with-looping)
16
+ - [API Reference](#api-reference)
17
+ - [Recording API](#recording-api)
18
+ - [Playback API](#playback-api)
19
+ - [Status Types](#status-types)
20
+
21
+ ---
22
+
23
+ ## Features
24
+
25
+ - 🎙️ **Recording**: High-quality AAC/M4A recording with real-time timer updates.
26
+ - 🔊 **Playback**: Powered by ExoPlayer (Android) and AVPlayer (iOS).
27
+ - 🔄 **Native Looping**: Seamless looping handled at the native level.
28
+ - 📊 **Progress Tracking**: Real-time position and duration updates (every 500ms).
29
+ - 🛡️ **Auto-Cleanup**: Option to automatically stop playback when starting a recording.
30
+
31
+ ---
32
+
33
+ ## Installation
34
+
35
+ ### Requirements
36
+
37
+ - **Android**: minSdkVersion 21 or higher
38
+ - **iOS**: iOS 11.0 or higher
39
+
40
+ ### Permissions (Crucial)
41
+
42
+ #### Android (`AndroidManifest.xml`)
43
+
44
+ ```xml
45
+ <uses-permission android:name="android.permission.RECORD_AUDIO" />
46
+ <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
47
+ ```
48
+
49
+ #### iOS (`Info.plist`)
50
+
51
+ ```xml
52
+ <key>NSMicrophoneUsageDescription</key>
53
+ <string>We need access to your microphone to record voice notes.</string>
54
+ ```
55
+
56
+ ---
57
+
58
+ ## Usage
59
+
60
+ ### Recording Example
61
+
62
+ ```js
63
+ import Recplay from 'rns-recplay';
64
+
65
+ const startMyRecording = async () => {
66
+ try {
67
+ const fileName = await Recplay.startRecording(
68
+ "my_voice_note",
69
+ true,
70
+ (seconds) => console.log(`Recorded: ${seconds}s`)
71
+ );
72
+ console.log("Recording started:", fileName);
73
+ } catch (err) {
74
+ console.error(err);
75
+ }
76
+ };
77
+
78
+ const stopMyRecording = async () => {
79
+ const fileUri = await Recplay.stopRecording();
80
+ console.log("File saved at:", fileUri);
81
+ };
82
+ ```
83
+
84
+ ---
85
+
86
+ ### Playback Example (with Looping)
87
+
88
+ ```js
89
+ import Recplay from 'rns-recplay';
90
+
91
+ Recplay.playAudio(
92
+ "file:///path/to/audio.m4a",
93
+ true,
94
+ true,
95
+ {
96
+ onStatus: (status) => console.log("Status:", status),
97
+ onProgress: (pos, dur) => console.log(`Progress: ${pos} / ${dur}`),
98
+ onFinished: () => console.log("Done!")
99
+ }
100
+ );
101
+ ```
102
+
103
+ ---
104
+
105
+ ## API Reference
106
+
107
+ ### Recording API
108
+
109
+ #### startRecording(fileName?, shouldStopPlayback?, onSecondsUpdate?)
110
+
111
+ | Param | Type | Default | Description |
112
+ |--------------------|----------|---------|-------------|
113
+ | fileName | string | null | Custom name for the `.m4a` file |
114
+ | shouldStopPlayback | boolean | true | Stops any active audio player before recording |
115
+ | onSecondsUpdate | function | null | Callback fired every second |
116
+
117
+ ---
118
+
119
+ #### stopRecording()
120
+
121
+ Stops the recording and releases the microphone.
122
+
123
+ **Returns:** Promise<string>
124
+
125
+ ---
126
+
127
+ #### pauseRecording() / resumeRecording()
128
+
129
+ Pauses or resumes the current recording session.
130
+
131
+ ---
132
+
133
+ ### Playback API
134
+
135
+ #### playAudio(uri, shouldStopPrevious?, loop?, callbacks?)
136
+
137
+ | Param | Type | Default | Description |
138
+ |-------------------|---------|---------|-------------|
139
+ | uri | string | Required | Audio URI |
140
+ | shouldStopPrevious| boolean | false | Stops previous playback |
141
+ | loop | boolean | false | Native looping |
142
+ | callbacks | object | `{}` | onStatus, onProgress, onFinished |
143
+
144
+ ---
145
+
146
+ #### stopPlayback()
147
+
148
+ Stops audio immediately.
149
+
150
+ ---
151
+
152
+ #### togglePlayback()
153
+
154
+ Plays or pauses the active player.
155
+
156
+ ---
157
+
158
+ #### seekTo(seconds)
159
+
160
+ | Param | Type | Description |
161
+ |--------|--------|-------------|
162
+ | seconds | number | Seek position |
163
+
164
+ ---
165
+
166
+ ## Status Types
167
+
168
+ - BUFFERING
169
+ - PLAYING
170
+ - PAUSED
171
+ - ENDED
172
+ - IDLE
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Automatically generated file. DO NOT MODIFY
3
+ */
4
+ package com.rnsrecplay;
5
+
6
+ public final class BuildConfig {
7
+ public static final boolean DEBUG = Boolean.parseBoolean("true");
8
+ public static final String LIBRARY_PACKAGE_NAME = "com.rnsrecplay";
9
+ public static final String BUILD_TYPE = "debug";
10
+ }
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <manifest xmlns:android="http://schemas.android.com/apk/res/android"
3
+ package="com.rnsrecplay" >
4
+
5
+ <uses-sdk android:minSdkVersion="24" />
6
+
7
+ </manifest>
@@ -0,0 +1,18 @@
1
+ {
2
+ "version": 3,
3
+ "artifactType": {
4
+ "type": "AAPT_FRIENDLY_MERGED_MANIFESTS",
5
+ "kind": "Directory"
6
+ },
7
+ "applicationId": "com.rnsrecplay",
8
+ "variantName": "debug",
9
+ "elements": [
10
+ {
11
+ "type": "SINGLE",
12
+ "filters": [],
13
+ "attributes": [],
14
+ "outputFile": "AndroidManifest.xml"
15
+ }
16
+ ],
17
+ "elementType": "File"
18
+ }
@@ -0,0 +1,6 @@
1
+ aarFormatVersion=1.0
2
+ aarMetadataVersion=1.0
3
+ minCompileSdk=1
4
+ minCompileSdkExtension=0
5
+ minAndroidGradlePluginVersion=1.0.0
6
+ coreLibraryDesugaringEnabled=false
@@ -0,0 +1,2 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <merger version="3"><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="main$Generated" generated="true" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/bush/Desktop/Apps/Raiidr/node_modules/rns-recplay/android/src/main/res"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="main" generated-set="main$Generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/bush/Desktop/Apps/Raiidr/node_modules/rns-recplay/android/src/main/res"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="debug$Generated" generated="true" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/bush/Desktop/Apps/Raiidr/node_modules/rns-recplay/android/src/debug/res"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="debug" generated-set="debug$Generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/bush/Desktop/Apps/Raiidr/node_modules/rns-recplay/android/src/debug/res"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="generated$Generated" generated="true" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/bush/Desktop/Apps/Raiidr/node_modules/rns-recplay/android/build/generated/res/resValues/debug"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="generated" generated-set="generated$Generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/bush/Desktop/Apps/Raiidr/node_modules/rns-recplay/android/build/generated/res/resValues/debug"/></dataSet><mergedItems/></merger>
@@ -0,0 +1,2 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/bush/Desktop/Apps/Raiidr/node_modules/rns-recplay/android/src/main/jniLibs"/></dataSet><dataSet config="debug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/bush/Desktop/Apps/Raiidr/node_modules/rns-recplay/android/src/debug/jniLibs"/></dataSet></merger>
@@ -0,0 +1,2 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/bush/Desktop/Apps/Raiidr/node_modules/rns-recplay/android/src/main/shaders"/></dataSet><dataSet config="debug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/bush/Desktop/Apps/Raiidr/node_modules/rns-recplay/android/src/debug/shaders"/></dataSet></merger>
@@ -0,0 +1,2 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/bush/Desktop/Apps/Raiidr/node_modules/rns-recplay/android/src/main/assets"/></dataSet><dataSet config="debug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/bush/Desktop/Apps/Raiidr/node_modules/rns-recplay/android/src/debug/assets"/></dataSet><dataSet config="generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/bush/Desktop/Apps/Raiidr/node_modules/rns-recplay/android/build/intermediates/shader_assets/debug/compileDebugShaders/out"/></dataSet></merger>
@@ -0,0 +1,2 @@
1
+ R_DEF: Internal format may change without notice
2
+ local
@@ -0,0 +1,7 @@
1
+ 1<?xml version="1.0" encoding="utf-8"?>
2
+ 2<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3
+ 3 package="com.rnsrecplay" >
4
+ 4
5
+ 5 <uses-sdk android:minSdkVersion="24" />
6
+ 6
7
+ 7</manifest>
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <manifest xmlns:android="http://schemas.android.com/apk/res/android"
3
+ package="com.rnsrecplay" >
4
+
5
+ <uses-sdk android:minSdkVersion="24" />
6
+
7
+ </manifest>
@@ -0,0 +1,16 @@
1
+ -- Merging decision tree log ---
2
+ manifest
3
+ ADDED from /Users/bush/Desktop/Apps/Raiidr/node_modules/rns-recplay/android/build/intermediates/tmp/ProcessLibraryManifest/debug/tempAndroidManifest10474479560867336143.xml:2:13-83
4
+ INJECTED from /Users/bush/Desktop/Apps/Raiidr/node_modules/rns-recplay/android/build/intermediates/tmp/ProcessLibraryManifest/debug/tempAndroidManifest10474479560867336143.xml:2:13-83
5
+ package
6
+ INJECTED from /Users/bush/Desktop/Apps/Raiidr/node_modules/rns-recplay/android/build/intermediates/tmp/ProcessLibraryManifest/debug/tempAndroidManifest10474479560867336143.xml
7
+ xmlns:android
8
+ ADDED from /Users/bush/Desktop/Apps/Raiidr/node_modules/rns-recplay/android/build/intermediates/tmp/ProcessLibraryManifest/debug/tempAndroidManifest10474479560867336143.xml:2:23-81
9
+ uses-sdk
10
+ INJECTED from /Users/bush/Desktop/Apps/Raiidr/node_modules/rns-recplay/android/build/intermediates/tmp/ProcessLibraryManifest/debug/tempAndroidManifest10474479560867336143.xml reason: use-sdk injection requested
11
+ INJECTED from /Users/bush/Desktop/Apps/Raiidr/node_modules/rns-recplay/android/build/intermediates/tmp/ProcessLibraryManifest/debug/tempAndroidManifest10474479560867336143.xml
12
+ INJECTED from /Users/bush/Desktop/Apps/Raiidr/node_modules/rns-recplay/android/build/intermediates/tmp/ProcessLibraryManifest/debug/tempAndroidManifest10474479560867336143.xml
13
+ android:targetSdkVersion
14
+ INJECTED from /Users/bush/Desktop/Apps/Raiidr/node_modules/rns-recplay/android/build/intermediates/tmp/ProcessLibraryManifest/debug/tempAndroidManifest10474479560867336143.xml
15
+ android:minSdkVersion
16
+ INJECTED from /Users/bush/Desktop/Apps/Raiidr/node_modules/rns-recplay/android/build/intermediates/tmp/ProcessLibraryManifest/debug/tempAndroidManifest10474479560867336143.xml
@@ -0,0 +1,67 @@
1
+ buildscript {
2
+ ext.kotlin_version = project.hasProperty('kotlinVersion') ? project.kotlinVersion : '1.8.10'
3
+ repositories {
4
+ google()
5
+ mavenCentral()
6
+ }
7
+ dependencies {
8
+ classpath "com.android.tools.build:gradle:7.4.2"
9
+ classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
10
+ }
11
+ }
12
+
13
+ apply plugin: 'com.android.library'
14
+ apply plugin: 'kotlin-android'
15
+
16
+ def safeExtGet(prop, fallback) {
17
+ rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback
18
+ }
19
+
20
+ android {
21
+ namespace "com.rnsrecplay"
22
+
23
+ // Using 34 to match modern React Native standards
24
+ compileSdkVersion safeExtGet('compileSdkVersion', 34)
25
+
26
+ defaultConfig {
27
+ minSdkVersion safeExtGet('minSdkVersion', 21)
28
+ targetSdkVersion safeExtGet('targetSdkVersion', 34)
29
+
30
+ testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
31
+ }
32
+
33
+ compileOptions {
34
+ sourceCompatibility JavaVersion.VERSION_17
35
+ targetCompatibility JavaVersion.VERSION_17
36
+ }
37
+
38
+ kotlinOptions {
39
+ jvmTarget = '17'
40
+ }
41
+
42
+ lint {
43
+ abortOnError false
44
+ }
45
+ }
46
+
47
+ repositories {
48
+ mavenCentral()
49
+ google()
50
+ }
51
+
52
+ dependencies {
53
+ // React Native Core
54
+ implementation "com.facebook.react:react-native:+"
55
+ implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
56
+ implementation "androidx.core:core-ktx:1.12.0"
57
+ implementation "androidx.appcompat:appcompat:1.6.1"
58
+
59
+ // --- AUDIO PLAYBACK (EXOPLAYER) ---
60
+ // This solves your "Unresolved reference" errors
61
+ implementation "com.google.android.exoplayer:exoplayer-core:2.18.1"
62
+ implementation "com.google.android.exoplayer:exoplayer-dash:2.18.1"
63
+ implementation "com.google.android.exoplayer:exoplayer-ui:2.18.1"
64
+
65
+ // Optional: Keep your other dependencies if they are used elsewhere in the module
66
+ implementation "com.github.bumptech.glide:glide:4.15.1"
67
+ }