@@ -8,14 +8,19 @@ import com.facebook.react.bridge.ReactApplicationContext
8
8
import com.facebook.react.bridge.ReactContextBaseJavaModule
9
9
import com.facebook.react.bridge.ReactMethod
10
10
import com.facebook.react.bridge.ReadableMap
11
+ import com.facebook.react.modules.core.DeviceEventManagerModule
11
12
import com.livekit.reactnative.audio.AudioDeviceKind
12
13
import com.livekit.reactnative.audio.AudioManagerUtils
13
14
import com.livekit.reactnative.audio.AudioSwitchManager
15
+ import com.livekit.reactnative.audio.events.Events
14
16
import com.livekit.reactnative.audio.processing.AudioSinkManager
17
+ import com.livekit.reactnative.audio.processing.AudioSinkProcessor
15
18
import com.livekit.reactnative.audio.processing.MultibandVolumeProcessor
16
19
import com.livekit.reactnative.audio.processing.VolumeProcessor
17
20
import com.oney.WebRTCModule.WebRTCModuleOptions
18
21
import org.webrtc.audio.WebRtcAudioTrackHelper
22
+ import java.lang.Thread.sleep
23
+ import kotlin.concurrent.thread
19
24
import kotlin.time.Duration.Companion.milliseconds
20
25
21
26
// NOTE: As of 0.80 react-native new architecture requires all
@@ -134,6 +139,23 @@ class LivekitReactNativeModule(reactContext: ReactApplicationContext) : ReactCon
134
139
promise.resolve(null )
135
140
}
136
141
142
+ @ReactMethod(isBlockingSynchronousMethod = true )
143
+ fun createAudioSinkListener (pcId : Int , trackId : String ): String {
144
+ val processor = AudioSinkProcessor (reactApplicationContext)
145
+ val reactTag = audioSinkManager.registerSink(processor)
146
+ audioSinkManager.attachSinkToTrack(processor, pcId, trackId)
147
+ processor.reactTag = reactTag
148
+
149
+ return reactTag
150
+ }
151
+
152
+ @ReactMethod(isBlockingSynchronousMethod = true )
153
+ fun deleteAudioSinkListener (reactTag : String , pcId : Int , trackId : String ): Boolean {
154
+ audioSinkManager.detachSinkFromTrack(reactTag, pcId, trackId)
155
+ audioSinkManager.unregisterSink(reactTag)
156
+ return true
157
+ }
158
+
137
159
@ReactMethod(isBlockingSynchronousMethod = true )
138
160
fun createVolumeProcessor (pcId : Int , trackId : String ): String {
139
161
val processor = VolumeProcessor (reactApplicationContext)
0 commit comments