@100mslive/react-native-hms 0.9.8 → 0.9.92
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/README.md +50 -43
- package/android/.gradle/6.9/fileHashes/fileHashes.bin +0 -0
- package/android/.gradle/6.9/fileHashes/fileHashes.lock +0 -0
- package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
- package/android/.gradle/buildOutputCleanup/outputFiles.bin +0 -0
- package/android/.gradle/checksums/checksums.lock +0 -0
- package/android/.gradle/checksums/md5-checksums.bin +0 -0
- package/android/.gradle/checksums/sha1-checksums.bin +0 -0
- package/android/.idea/libraries/{Gradle__com_github_100mslive_android_sdk_lib_2_4_2_aar.xml → Gradle__com_github_100mslive_android_sdk_lib_2_4_7_aar.xml} +4 -4
- package/android/.idea/libraries/Gradle__com_github_100mslive_webrtc_m97_hms_1_1_aar.xml +11 -0
- package/android/.idea/modules/android.androidTest.iml +4 -4
- package/android/.idea/modules/android.main.iml +4 -4
- package/android/.idea/modules/android.unitTest.iml +4 -4
- package/android/build.gradle +2 -2
- package/android/src/main/java/com/reactnativehmssdk/HMSAudioshareActivity.kt +84 -0
- package/android/src/main/java/com/reactnativehmssdk/HMSDecoder.kt +77 -8
- package/android/src/main/java/com/reactnativehmssdk/HMSHelper.kt +95 -22
- package/android/src/main/java/com/reactnativehmssdk/HMSManager.kt +88 -2
- package/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt +282 -49
- package/ios/HMSDecoder.swift +9 -8
- package/ios/HMSHelper.swift +5 -8
- package/ios/HMSManager.m +4 -1
- package/ios/HMSManager.swift +28 -6
- package/ios/HMSRNSDK.swift +146 -101
- package/lib/commonjs/classes/HMSAudioDevice.js +17 -0
- package/lib/commonjs/classes/HMSAudioDevice.js.map +1 -0
- package/lib/commonjs/classes/HMSAudioMixingMode.js +15 -0
- package/lib/commonjs/classes/HMSAudioMixingMode.js.map +1 -0
- package/lib/commonjs/classes/HMSAudioMode.js +17 -0
- package/lib/commonjs/classes/HMSAudioMode.js.map +1 -0
- package/lib/commonjs/classes/HMSEncoder.js +15 -0
- package/lib/commonjs/classes/HMSEncoder.js.map +1 -1
- package/lib/commonjs/classes/HMSException.js +18 -13
- package/lib/commonjs/classes/HMSException.js.map +1 -1
- package/lib/commonjs/classes/HMSHLSConfig.js.map +1 -1
- package/lib/commonjs/classes/HMSLogger.js +2 -2
- package/lib/commonjs/classes/HMSLogger.js.map +1 -1
- package/lib/commonjs/classes/HMSPermissions.js +7 -4
- package/lib/commonjs/classes/HMSPermissions.js.map +1 -1
- package/lib/commonjs/classes/HMSSDK.js +267 -58
- package/lib/commonjs/classes/HMSSDK.js.map +1 -1
- package/lib/commonjs/classes/HMSUpdateListenerActions.js +1 -0
- package/lib/commonjs/classes/HMSUpdateListenerActions.js.map +1 -1
- package/lib/commonjs/index.js +42 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/classes/HMSAudioDevice.js +10 -0
- package/lib/module/classes/HMSAudioDevice.js.map +1 -0
- package/lib/module/classes/HMSAudioMixingMode.js +8 -0
- package/lib/module/classes/HMSAudioMixingMode.js.map +1 -0
- package/lib/module/classes/HMSAudioMode.js +10 -0
- package/lib/module/classes/HMSAudioMode.js.map +1 -0
- package/lib/module/classes/HMSEncoder.js +14 -0
- package/lib/module/classes/HMSEncoder.js.map +1 -1
- package/lib/module/classes/HMSException.js +18 -13
- package/lib/module/classes/HMSException.js.map +1 -1
- package/lib/module/classes/HMSHLSConfig.js.map +1 -1
- package/lib/module/classes/HMSLogger.js +2 -2
- package/lib/module/classes/HMSLogger.js.map +1 -1
- package/lib/module/classes/HMSPermissions.js +7 -4
- package/lib/module/classes/HMSPermissions.js.map +1 -1
- package/lib/module/classes/HMSSDK.js +267 -52
- package/lib/module/classes/HMSSDK.js.map +1 -1
- package/lib/module/classes/HMSUpdateListenerActions.js +1 -0
- package/lib/module/classes/HMSUpdateListenerActions.js.map +1 -1
- package/lib/module/index.js +3 -0
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/classes/HMSAudioDevice.d.ts +7 -0
- package/lib/typescript/classes/HMSAudioMixingMode.d.ts +5 -0
- package/lib/typescript/classes/HMSAudioMode.d.ts +7 -0
- package/lib/typescript/classes/HMSEncoder.d.ts +2 -0
- package/lib/typescript/classes/HMSException.d.ts +8 -14
- package/lib/typescript/classes/HMSHLSConfig.d.ts +2 -2
- package/lib/typescript/classes/HMSLogger.d.ts +1 -1
- package/lib/typescript/classes/HMSPermissions.d.ts +6 -4
- package/lib/typescript/classes/HMSSDK.d.ts +112 -12
- package/lib/typescript/classes/HMSUpdateListenerActions.d.ts +2 -1
- package/lib/typescript/index.d.ts +3 -0
- package/package.json +1 -19
- package/react-native-hms.podspec +2 -1
- package/src/classes/HMSAudioDevice.ts +7 -0
- package/src/classes/HMSAudioMixingMode.ts +5 -0
- package/src/classes/HMSAudioMode.ts +7 -0
- package/src/classes/HMSEncoder.ts +12 -0
- package/src/classes/HMSException.ts +15 -24
- package/src/classes/HMSHLSConfig.ts +2 -2
- package/src/classes/HMSLogger.ts +2 -2
- package/src/classes/HMSPermissions.ts +9 -6
- package/src/classes/HMSSDK.tsx +352 -67
- package/src/classes/HMSUpdateListenerActions.ts +1 -0
- package/src/index.ts +3 -0
- package/android/.idea/libraries/Gradle__com_github_100mslive_webrtc_m97_aar.xml +0 -11
|
@@ -15,6 +15,7 @@ import com.facebook.react.bridge.ReadableMap
|
|
|
15
15
|
import com.facebook.react.uimanager.events.RCTEventEmitter
|
|
16
16
|
import java.io.ByteArrayOutputStream
|
|
17
17
|
import java.util.*
|
|
18
|
+
import live.hms.video.audio.HMSAudioManager
|
|
18
19
|
import live.hms.video.error.HMSException
|
|
19
20
|
import live.hms.video.media.codec.HMSAudioCodec
|
|
20
21
|
import live.hms.video.media.codec.HMSVideoCodec
|
|
@@ -23,6 +24,7 @@ import live.hms.video.media.tracks.HMSRemoteAudioTrack
|
|
|
23
24
|
import live.hms.video.media.tracks.HMSRemoteVideoTrack
|
|
24
25
|
import live.hms.video.media.tracks.HMSTrack
|
|
25
26
|
import live.hms.video.sdk.models.*
|
|
27
|
+
import live.hms.video.sdk.models.enums.AudioMixingMode
|
|
26
28
|
import live.hms.video.sdk.models.role.HMSRole
|
|
27
29
|
import live.hms.video.utils.HmsUtilities
|
|
28
30
|
import org.webrtc.SurfaceViewRenderer
|
|
@@ -248,6 +250,21 @@ object HMSHelper {
|
|
|
248
250
|
}
|
|
249
251
|
}
|
|
250
252
|
|
|
253
|
+
fun getAudioMixingMode(audioMixingMode: String?): AudioMixingMode {
|
|
254
|
+
when (audioMixingMode) {
|
|
255
|
+
"TALK_ONLY" -> {
|
|
256
|
+
return AudioMixingMode.TALK_ONLY
|
|
257
|
+
}
|
|
258
|
+
"MUSIC_ONLY" -> {
|
|
259
|
+
return AudioMixingMode.MUSIC_ONLY
|
|
260
|
+
}
|
|
261
|
+
"TALK_AND_MUSIC" -> {
|
|
262
|
+
return AudioMixingMode.TALK_AND_MUSIC
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
return AudioMixingMode.TALK_AND_MUSIC
|
|
266
|
+
}
|
|
267
|
+
|
|
251
268
|
private fun getAudioCodec(codecString: String?): HMSAudioCodec {
|
|
252
269
|
when (codecString) {
|
|
253
270
|
"opus" -> {
|
|
@@ -304,7 +321,25 @@ object HMSHelper {
|
|
|
304
321
|
return rtmpURLs
|
|
305
322
|
}
|
|
306
323
|
|
|
307
|
-
fun
|
|
324
|
+
fun getHLSConfig(data: ReadableMap?): HMSHLSConfig? {
|
|
325
|
+
if (data === null) {
|
|
326
|
+
return data
|
|
327
|
+
}
|
|
328
|
+
var hlsMeetingUrlVariant: List<HMSHLSMeetingURLVariant>? = null
|
|
329
|
+
if (areAllRequiredKeysAvailable(data, arrayOf(Pair("meetingURLVariants", "Array")))) {
|
|
330
|
+
val meetingURLVariants =
|
|
331
|
+
data.getArray("meetingURLVariants")?.toArrayList() as? ArrayList<HashMap<String, String>>
|
|
332
|
+
hlsMeetingUrlVariant = getHMSHLSMeetingURLVariants(meetingURLVariants)
|
|
333
|
+
}
|
|
334
|
+
var hlsRecordingConfig: HMSHlsRecordingConfig? = null
|
|
335
|
+
if (areAllRequiredKeysAvailable(data, arrayOf(Pair("hlsRecordingConfig", "Map")))) {
|
|
336
|
+
val recordingConfig = data.getMap("hlsRecordingConfig")
|
|
337
|
+
hlsRecordingConfig = getHlsRecordingConfig(recordingConfig)
|
|
338
|
+
}
|
|
339
|
+
return HMSHLSConfig(hlsMeetingUrlVariant, hlsRecordingConfig)
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
private fun getHMSHLSMeetingURLVariants(
|
|
308
343
|
hmsMeetingURLVariants: ArrayList<HashMap<String, String>>?
|
|
309
344
|
): List<HMSHLSMeetingURLVariant> {
|
|
310
345
|
val meetingURLVariants = mutableListOf<HMSHLSMeetingURLVariant>()
|
|
@@ -317,28 +352,25 @@ object HMSHelper {
|
|
|
317
352
|
return meetingURLVariants
|
|
318
353
|
}
|
|
319
354
|
|
|
320
|
-
fun getHlsRecordingConfig(
|
|
321
|
-
if (
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
) {
|
|
331
|
-
singleFilePerLayer = hmsHlsRecordingConfig.getBoolean("singleFilePerLayer")
|
|
332
|
-
}
|
|
333
|
-
if (areAllRequiredKeysAvailable(
|
|
334
|
-
hmsHlsRecordingConfig,
|
|
335
|
-
arrayOf(Pair("videoOnDemand", "Boolean"))
|
|
336
|
-
)
|
|
337
|
-
) {
|
|
338
|
-
videoOnDemand = hmsHlsRecordingConfig.getBoolean("videoOnDemand")
|
|
339
|
-
}
|
|
340
|
-
return HMSHlsRecordingConfig(singleFilePerLayer, videoOnDemand)
|
|
355
|
+
private fun getHlsRecordingConfig(hmsHlsRecordingConfig: ReadableMap?): HMSHlsRecordingConfig? {
|
|
356
|
+
if (hmsHlsRecordingConfig !== null) {
|
|
357
|
+
var singleFilePerLayer = false
|
|
358
|
+
var videoOnDemand = false
|
|
359
|
+
if (areAllRequiredKeysAvailable(
|
|
360
|
+
hmsHlsRecordingConfig,
|
|
361
|
+
arrayOf(Pair("singleFilePerLayer", "Boolean"))
|
|
362
|
+
)
|
|
363
|
+
) {
|
|
364
|
+
singleFilePerLayer = hmsHlsRecordingConfig.getBoolean("singleFilePerLayer")
|
|
341
365
|
}
|
|
366
|
+
if (areAllRequiredKeysAvailable(
|
|
367
|
+
hmsHlsRecordingConfig,
|
|
368
|
+
arrayOf(Pair("videoOnDemand", "Boolean"))
|
|
369
|
+
)
|
|
370
|
+
) {
|
|
371
|
+
videoOnDemand = hmsHlsRecordingConfig.getBoolean("videoOnDemand")
|
|
372
|
+
}
|
|
373
|
+
return HMSHlsRecordingConfig(singleFilePerLayer, videoOnDemand)
|
|
342
374
|
}
|
|
343
375
|
return null
|
|
344
376
|
}
|
|
@@ -542,4 +574,45 @@ object HMSHelper {
|
|
|
542
574
|
reactContext.getJSModule(RCTEventEmitter::class.java).receiveEvent(id, "captureFrame", output)
|
|
543
575
|
}
|
|
544
576
|
}
|
|
577
|
+
|
|
578
|
+
fun getAudioDevicesList(audioDevicesList: List<HMSAudioManager.AudioDevice>?): ReadableArray {
|
|
579
|
+
val hmsAudioDevicesList = Arguments.createArray()
|
|
580
|
+
if (audioDevicesList != null) {
|
|
581
|
+
for (audioDevice in audioDevicesList) {
|
|
582
|
+
hmsAudioDevicesList.pushString(audioDevice.name)
|
|
583
|
+
}
|
|
584
|
+
}
|
|
585
|
+
return hmsAudioDevicesList
|
|
586
|
+
}
|
|
587
|
+
|
|
588
|
+
fun getAudioDevicesSet(audioDevicesSet: Set<HMSAudioManager.AudioDevice>?): ReadableArray {
|
|
589
|
+
val hmsAudioDevicesSet = Arguments.createArray()
|
|
590
|
+
if (audioDevicesSet != null) {
|
|
591
|
+
for (audioDevice in audioDevicesSet) {
|
|
592
|
+
hmsAudioDevicesSet.pushString(audioDevice.name)
|
|
593
|
+
}
|
|
594
|
+
}
|
|
595
|
+
return hmsAudioDevicesSet
|
|
596
|
+
}
|
|
597
|
+
|
|
598
|
+
fun getAudioDevice(audioDevice: String?): HMSAudioManager.AudioDevice {
|
|
599
|
+
when (audioDevice) {
|
|
600
|
+
"AUTOMATIC" -> {
|
|
601
|
+
return HMSAudioManager.AudioDevice.AUTOMATIC
|
|
602
|
+
}
|
|
603
|
+
"BLUETOOTH" -> {
|
|
604
|
+
return HMSAudioManager.AudioDevice.BLUETOOTH
|
|
605
|
+
}
|
|
606
|
+
"EARPIECE" -> {
|
|
607
|
+
return HMSAudioManager.AudioDevice.EARPIECE
|
|
608
|
+
}
|
|
609
|
+
"SPEAKER_PHONE" -> {
|
|
610
|
+
return HMSAudioManager.AudioDevice.SPEAKER_PHONE
|
|
611
|
+
}
|
|
612
|
+
"WIRED_HEADSET" -> {
|
|
613
|
+
return HMSAudioManager.AudioDevice.WIRED_HEADSET
|
|
614
|
+
}
|
|
615
|
+
}
|
|
616
|
+
return HMSAudioManager.AudioDevice.SPEAKER_PHONE
|
|
617
|
+
}
|
|
545
618
|
}
|
|
@@ -202,10 +202,10 @@ class HMSManager(reactContext: ReactApplicationContext) :
|
|
|
202
202
|
}
|
|
203
203
|
|
|
204
204
|
@ReactMethod
|
|
205
|
-
fun remoteMuteAllAudio(data: ReadableMap) {
|
|
205
|
+
fun remoteMuteAllAudio(data: ReadableMap, callback: Promise?) {
|
|
206
206
|
val hms = HMSHelper.getHms(data, hmsCollection)
|
|
207
207
|
|
|
208
|
-
hms?.remoteMuteAllAudio()
|
|
208
|
+
hms?.remoteMuteAllAudio(callback)
|
|
209
209
|
}
|
|
210
210
|
|
|
211
211
|
@ReactMethod
|
|
@@ -238,6 +238,43 @@ class HMSManager(reactContext: ReactApplicationContext) :
|
|
|
238
238
|
hms?.stopScreenshare(callback)
|
|
239
239
|
}
|
|
240
240
|
|
|
241
|
+
@ReactMethod
|
|
242
|
+
fun startAudioshare(data: ReadableMap, callback: Promise?) {
|
|
243
|
+
currentActivity?.application?.registerActivityLifecycleCallbacks(this)
|
|
244
|
+
val hms = HMSHelper.getHms(data, hmsCollection)
|
|
245
|
+
|
|
246
|
+
hms?.startAudioshare(data, callback)
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
@ReactMethod
|
|
250
|
+
fun isAudioShared(data: ReadableMap, callback: Promise?) {
|
|
251
|
+
val hms = HMSHelper.getHms(data, hmsCollection)
|
|
252
|
+
|
|
253
|
+
hms?.isAudioShared(callback)
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
@ReactMethod
|
|
257
|
+
fun stopAudioshare(data: ReadableMap, callback: Promise?) {
|
|
258
|
+
val hms = HMSHelper.getHms(data, hmsCollection)
|
|
259
|
+
|
|
260
|
+
currentActivity?.application?.unregisterActivityLifecycleCallbacks(this)
|
|
261
|
+
hms?.stopAudioshare(callback)
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
@ReactMethod
|
|
265
|
+
fun getAudioMixingMode(data: ReadableMap, callback: Promise?) {
|
|
266
|
+
val hms = HMSHelper.getHms(data, hmsCollection)
|
|
267
|
+
|
|
268
|
+
callback?.resolve(hms?.getAudioMixingMode()?.name)
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
@ReactMethod
|
|
272
|
+
fun setAudioMixingMode(data: ReadableMap, callback: Promise?) {
|
|
273
|
+
val hms = HMSHelper.getHms(data, hmsCollection)
|
|
274
|
+
|
|
275
|
+
hms?.setAudioMixingMode(data, callback)
|
|
276
|
+
}
|
|
277
|
+
|
|
241
278
|
@ReactMethod
|
|
242
279
|
fun startRTMPOrRecording(data: ReadableMap, callback: Promise?) {
|
|
243
280
|
val hms = HMSHelper.getHms(data, hmsCollection)
|
|
@@ -290,6 +327,55 @@ class HMSManager(reactContext: ReactApplicationContext) :
|
|
|
290
327
|
callback?.resolve(result)
|
|
291
328
|
}
|
|
292
329
|
|
|
330
|
+
@ReactMethod
|
|
331
|
+
fun enableRTCStats(data: ReadableMap) {
|
|
332
|
+
val hms = HMSHelper.getHms(data, hmsCollection)
|
|
333
|
+
|
|
334
|
+
hms?.enableRTCStats()
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
@ReactMethod
|
|
338
|
+
fun disableRTCStats(data: ReadableMap) {
|
|
339
|
+
val hms = HMSHelper.getHms(data, hmsCollection)
|
|
340
|
+
|
|
341
|
+
hms?.disableRTCStats()
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
@ReactMethod
|
|
345
|
+
fun getAudioDevicesList(data: ReadableMap, callback: Promise?) {
|
|
346
|
+
val hms = HMSHelper.getHms(data, hmsCollection)
|
|
347
|
+
|
|
348
|
+
hms?.getAudioDevicesList(callback)
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
@ReactMethod
|
|
352
|
+
fun getAudioOutputRouteType(data: ReadableMap, callback: Promise?) {
|
|
353
|
+
val hms = HMSHelper.getHms(data, hmsCollection)
|
|
354
|
+
|
|
355
|
+
hms?.getAudioOutputRouteType(callback)
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
@ReactMethod
|
|
359
|
+
fun switchAudioOutput(data: ReadableMap) {
|
|
360
|
+
val hms = HMSHelper.getHms(data, hmsCollection)
|
|
361
|
+
|
|
362
|
+
hms?.switchAudioOutput(data)
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
@ReactMethod
|
|
366
|
+
fun setAudioMode(data: ReadableMap) {
|
|
367
|
+
val hms = HMSHelper.getHms(data, hmsCollection)
|
|
368
|
+
|
|
369
|
+
hms?.setAudioMode(data)
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
@ReactMethod
|
|
373
|
+
fun setAudioDeviceChangeListener(data: ReadableMap) {
|
|
374
|
+
val hms = HMSHelper.getHms(data, hmsCollection)
|
|
375
|
+
|
|
376
|
+
hms?.setAudioDeviceChangeListener()
|
|
377
|
+
}
|
|
378
|
+
|
|
293
379
|
fun emitEvent(event: String, data: WritableMap) {
|
|
294
380
|
reactApplicationContext
|
|
295
381
|
.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java)
|