@100mslive/react-native-hms 0.9.5 → 0.9.8
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 +15 -4
- 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/compiler.xml +6 -0
- package/android/.idea/gradle.xml +6 -1
- package/android/.idea/jarRepositories.xml +40 -0
- package/android/.idea/libraries/Gradle__androidx_activity_activity_1_2_4_aar.xml +16 -0
- package/android/.idea/libraries/Gradle__androidx_annotation_annotation_1_3_0.xml +11 -0
- package/android/.idea/libraries/Gradle__androidx_annotation_annotation_experimental_1_1_0_aar.xml +13 -0
- package/android/.idea/libraries/Gradle__androidx_appcompat_appcompat_1_4_1_aar.xml +16 -0
- package/android/.idea/libraries/Gradle__androidx_appcompat_appcompat_resources_1_4_1_aar.xml +13 -0
- package/android/.idea/libraries/Gradle__androidx_arch_core_core_common_2_1_0.xml +11 -0
- package/android/.idea/libraries/Gradle__androidx_arch_core_core_runtime_2_1_0_aar.xml +13 -0
- package/android/.idea/libraries/Gradle__androidx_autofill_autofill_1_1_0_aar.xml +16 -0
- package/android/.idea/libraries/Gradle__androidx_collection_collection_1_1_0.xml +11 -0
- package/android/.idea/libraries/Gradle__androidx_constraintlayout_constraintlayout_2_1_3_aar.xml +13 -0
- package/android/.idea/libraries/Gradle__androidx_core_core_1_7_0_aar.xml +16 -0
- package/android/.idea/libraries/Gradle__androidx_cursoradapter_cursoradapter_1_0_0_aar.xml +13 -0
- package/android/.idea/libraries/Gradle__androidx_customview_customview_1_0_0_aar.xml +13 -0
- package/android/.idea/libraries/Gradle__androidx_drawerlayout_drawerlayout_1_0_0_aar.xml +16 -0
- package/android/.idea/libraries/Gradle__androidx_fragment_fragment_1_3_6_aar.xml +16 -0
- package/android/.idea/libraries/Gradle__androidx_interpolator_interpolator_1_0_0_aar.xml +13 -0
- package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_common_2_4_0.xml +11 -0
- package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_2_0_0_aar.xml +13 -0
- package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_core_2_3_1_aar.xml +13 -0
- package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_runtime_2_4_0_aar.xml +13 -0
- package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_viewmodel_2_3_1_aar.xml +13 -0
- package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_viewmodel_savedstate_2_3_1_aar.xml +13 -0
- package/android/.idea/libraries/Gradle__androidx_loader_loader_1_0_0_aar.xml +13 -0
- package/android/.idea/libraries/Gradle__androidx_savedstate_savedstate_1_1_0_aar.xml +13 -0
- package/android/.idea/libraries/Gradle__androidx_swiperefreshlayout_swiperefreshlayout_1_0_0_aar.xml +16 -0
- package/android/.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_1_1_0_aar.xml +13 -0
- package/android/.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_animated_1_1_0_aar.xml +13 -0
- package/android/.idea/libraries/Gradle__androidx_versionedparcelable_versionedparcelable_1_1_1_aar.xml +13 -0
- package/android/.idea/libraries/Gradle__androidx_viewpager_viewpager_1_0_0_aar.xml +13 -0
- package/android/.idea/libraries/Gradle__com_facebook_fbjni_fbjni_java_only_0_2_2.xml +13 -0
- package/android/.idea/libraries/Gradle__com_facebook_fresco_drawee_2_5_0_aar.xml +15 -0
- package/android/.idea/libraries/Gradle__com_facebook_fresco_fbcore_2_5_0_aar.xml +18 -0
- package/android/.idea/libraries/Gradle__com_facebook_fresco_fresco_2_5_0_aar.xml +18 -0
- package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_2_5_0_aar.xml +18 -0
- package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_base_2_5_0_aar.xml +18 -0
- package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_native_2_5_0_aar.xml +15 -0
- package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_okhttp3_2_5_0_aar.xml +15 -0
- package/android/.idea/libraries/Gradle__com_facebook_fresco_memory_type_ashmem_2_5_0_aar.xml +15 -0
- package/android/.idea/libraries/Gradle__com_facebook_fresco_memory_type_java_2_5_0_aar.xml +15 -0
- package/android/.idea/libraries/Gradle__com_facebook_fresco_memory_type_native_2_5_0_aar.xml +15 -0
- package/android/.idea/libraries/Gradle__com_facebook_fresco_nativeimagefilters_2_5_0_aar.xml +15 -0
- package/android/.idea/libraries/Gradle__com_facebook_fresco_nativeimagetranscoder_2_5_0_aar.xml +15 -0
- package/android/.idea/libraries/Gradle__com_facebook_fresco_ui_common_2_5_0_aar.xml +15 -0
- package/android/.idea/libraries/Gradle__com_facebook_infer_annotation_infer_annotation_0_18_0.xml +13 -0
- package/android/.idea/libraries/Gradle__com_facebook_react_react_native_0_69_1_debug_aar.xml +14 -0
- package/android/.idea/libraries/Gradle__com_facebook_soloader_annotation_0_10_3.xml +13 -0
- package/android/.idea/libraries/Gradle__com_facebook_soloader_nativeloader_0_10_3.xml +13 -0
- package/android/.idea/libraries/Gradle__com_facebook_soloader_soloader_0_10_3_aar.xml +15 -0
- package/android/.idea/libraries/Gradle__com_facebook_yoga_proguard_annotations_1_19_0.xml +13 -0
- package/android/.idea/libraries/Gradle__com_github_100mslive_android_sdk_lib_2_4_2_aar.xml +11 -0
- package/android/.idea/libraries/Gradle__com_github_100mslive_webrtc_m97_aar.xml +11 -0
- package/android/.idea/libraries/Gradle__com_google_code_findbugs_jsr305_3_0_2.xml +13 -0
- package/android/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_4_9_2.xml +13 -0
- package/android/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_urlconnection_4_9_2.xml +13 -0
- package/android/.idea/libraries/Gradle__com_squareup_okio_okio_2_9_0.xml +13 -0
- package/android/.idea/libraries/Gradle__javax_inject_javax_inject_1.xml +13 -0
- package/android/.idea/libraries/Gradle__org_jetbrains_annotations_13_0.xml +13 -0
- package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_annotations_jvm_1_3_72.xml +13 -0
- package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_1_6_10.xml +13 -0
- package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_common_1_6_10.xml +13 -0
- package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_jdk7_1_6_10.xml +13 -0
- package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_jdk8_1_6_10.xml +13 -0
- package/android/.idea/libraries/Gradle__org_jetbrains_kotlinx_kotlinx_coroutines_android_1_6_0.xml +13 -0
- package/android/.idea/libraries/Gradle__org_jetbrains_kotlinx_kotlinx_coroutines_core_jvm_1_6_0.xml +13 -0
- package/android/.idea/misc.xml +1 -1
- package/android/.idea/modules/android.androidTest.iml +201 -0
- package/android/.idea/modules/android.iml +28 -6
- package/android/.idea/modules/android.main.iml +196 -0
- package/android/.idea/modules/android.unitTest.iml +195 -0
- package/android/.idea/modules.xml +3 -0
- package/android/build.gradle +3 -3
- package/android/src/main/java/com/reactnativehmssdk/{HmsDecoder.kt → HMSDecoder.kt} +40 -36
- package/android/src/main/java/com/reactnativehmssdk/{HmsHelper.kt → HMSHelper.kt} +73 -10
- package/android/src/main/java/com/reactnativehmssdk/{HmsModule.kt → HMSManager.kt} +51 -41
- package/android/src/main/java/com/reactnativehmssdk/{HmsSDK.kt → HMSRNSDK.kt} +194 -190
- package/android/src/main/java/com/reactnativehmssdk/{HmssdkViewManager.kt → HMSSDKViewManager.kt} +11 -11
- package/android/src/main/java/com/reactnativehmssdk/{HmsView.kt → HMSView.kt} +3 -3
- package/android/src/main/java/com/reactnativehmssdk/HmsScreenshareActivity.kt +17 -18
- package/android/src/main/java/com/reactnativehmssdk/HmssdkPackage.kt +2 -2
- package/ios/{HmsDecoder.swift → HMSDecoder.swift} +27 -26
- package/ios/{HmsHelper.swift → HMSHelper.swift} +26 -7
- package/ios/{HmsManager.m → HMSManager.m} +2 -1
- package/ios/{HmsManager.swift → HMSManager.swift} +46 -38
- package/ios/{HmsSDK.swift → HMSRNSDK.swift} +246 -225
- package/ios/{HmsView.m → HMSView.m} +1 -1
- package/ios/{HmsView.swift → HMSView.swift} +7 -6
- package/lib/commonjs/classes/HMSBrowserRecordingState.js.map +1 -1
- package/lib/commonjs/classes/HMSEncoder.js +27 -10
- package/lib/commonjs/classes/HMSEncoder.js.map +1 -1
- package/lib/commonjs/classes/HMSLocalAudioTrack.js +3 -3
- package/lib/commonjs/classes/HMSLocalAudioTrack.js.map +1 -1
- package/lib/commonjs/classes/HMSLocalVideoTrack.js +3 -3
- package/lib/commonjs/classes/HMSLocalVideoTrack.js.map +1 -1
- package/lib/commonjs/classes/HMSLogger.js.map +1 -1
- package/lib/commonjs/classes/HMSMessage.js +1 -1
- package/lib/commonjs/classes/HMSMessage.js.map +1 -1
- package/lib/commonjs/classes/HMSRTMPConfig.js +3 -0
- package/lib/commonjs/classes/HMSRTMPConfig.js.map +1 -1
- package/lib/commonjs/classes/HMSRemoteAudioTrack.js +3 -3
- package/lib/commonjs/classes/HMSRemoteAudioTrack.js.map +1 -1
- package/lib/commonjs/classes/HMSRemoteVideoTrack.js +3 -3
- package/lib/commonjs/classes/HMSRemoteVideoTrack.js.map +1 -1
- package/lib/commonjs/classes/HMSRoom.js +3 -0
- package/lib/commonjs/classes/HMSRoom.js.map +1 -1
- package/lib/commonjs/classes/HMSRoomUpdate.js +1 -3
- package/lib/commonjs/classes/HMSRoomUpdate.js.map +1 -1
- package/lib/commonjs/classes/HMSRtmpStreamingState.js.map +1 -1
- package/lib/commonjs/classes/HMSRtmpVideoResolution.js +23 -0
- package/lib/commonjs/classes/HMSRtmpVideoResolution.js.map +1 -0
- package/lib/commonjs/classes/HMSSDK.js +47 -40
- package/lib/commonjs/classes/HMSSDK.js.map +1 -1
- package/lib/commonjs/classes/HMSServerRecordingState.js.map +1 -1
- package/lib/commonjs/classes/HMSTrackSource.js +15 -0
- package/lib/commonjs/classes/HMSTrackSource.js.map +1 -0
- package/lib/commonjs/classes/HmsView.js +2 -2
- package/lib/commonjs/classes/HmsView.js.map +1 -1
- package/lib/commonjs/index.js +28 -14
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/classes/HMSBrowserRecordingState.js.map +1 -1
- package/lib/module/classes/HMSEncoder.js +25 -9
- package/lib/module/classes/HMSEncoder.js.map +1 -1
- package/lib/module/classes/HMSLocalAudioTrack.js +3 -3
- package/lib/module/classes/HMSLocalAudioTrack.js.map +1 -1
- package/lib/module/classes/HMSLocalVideoTrack.js +3 -3
- package/lib/module/classes/HMSLocalVideoTrack.js.map +1 -1
- package/lib/module/classes/HMSMessage.js +1 -1
- package/lib/module/classes/HMSMessage.js.map +1 -1
- package/lib/module/classes/HMSRTMPConfig.js +3 -0
- package/lib/module/classes/HMSRTMPConfig.js.map +1 -1
- package/lib/module/classes/HMSRemoteAudioTrack.js +3 -3
- package/lib/module/classes/HMSRemoteAudioTrack.js.map +1 -1
- package/lib/module/classes/HMSRemoteVideoTrack.js +3 -3
- package/lib/module/classes/HMSRemoteVideoTrack.js.map +1 -1
- package/lib/module/classes/HMSRoom.js +3 -0
- package/lib/module/classes/HMSRoom.js.map +1 -1
- package/lib/module/classes/HMSRoomUpdate.js +1 -3
- package/lib/module/classes/HMSRoomUpdate.js.map +1 -1
- package/lib/module/classes/HMSRtmpStreamingState.js.map +1 -1
- package/lib/module/classes/HMSRtmpVideoResolution.js +14 -0
- package/lib/module/classes/HMSRtmpVideoResolution.js.map +1 -0
- package/lib/module/classes/HMSSDK.js +45 -39
- package/lib/module/classes/HMSSDK.js.map +1 -1
- package/lib/module/classes/HMSServerRecordingState.js.map +1 -1
- package/lib/module/classes/HMSTrackSource.js +8 -0
- package/lib/module/classes/HMSTrackSource.js.map +1 -0
- package/lib/module/classes/HmsView.js +2 -2
- package/lib/module/classes/HmsView.js.map +1 -1
- package/lib/module/index.js +2 -1
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/classes/HMSBrowserRecordingState.d.ts +2 -2
- package/lib/typescript/classes/HMSEncoder.d.ts +4 -2
- package/lib/typescript/classes/HMSMessage.d.ts +3 -3
- package/lib/typescript/classes/HMSRTMPConfig.d.ts +3 -0
- package/lib/typescript/classes/HMSRoom.d.ts +2 -0
- package/lib/typescript/classes/HMSRoomUpdate.d.ts +1 -3
- package/lib/typescript/classes/HMSRtmpStreamingState.d.ts +2 -2
- package/lib/typescript/classes/HMSRtmpVideoResolution.d.ts +8 -0
- package/lib/typescript/classes/HMSSDK.d.ts +3 -3
- package/lib/typescript/classes/HMSServerRecordingState.d.ts +2 -2
- package/lib/typescript/classes/HMSTrackSource.d.ts +5 -0
- package/lib/typescript/index.d.ts +2 -1
- package/package.json +1 -1
- package/react-native-hms.podspec +2 -2
- package/src/classes/HMSBrowserRecordingState.ts +2 -2
- package/src/classes/HMSEncoder.ts +25 -9
- package/src/classes/HMSLocalAudioTrack.ts +3 -3
- package/src/classes/HMSLocalVideoTrack.ts +3 -3
- package/src/classes/HMSMessage.ts +4 -4
- package/src/classes/HMSRTMPConfig.ts +5 -0
- package/src/classes/HMSRemoteAudioTrack.ts +3 -3
- package/src/classes/HMSRemoteVideoTrack.ts +3 -3
- package/src/classes/HMSRoom.ts +3 -0
- package/src/classes/HMSRoomUpdate.ts +1 -3
- package/src/classes/HMSRtmpStreamingState.ts +2 -2
- package/src/classes/HMSRtmpVideoResolution.ts +9 -0
- package/src/classes/HMSSDK.tsx +47 -40
- package/src/classes/HMSServerRecordingState.ts +2 -2
- package/src/classes/HMSTrackSource.ts +5 -0
- package/src/classes/HmsView.tsx +2 -2
- package/src/index.ts +2 -1
- package/lib/commonjs/classes/HMSSpeakerUpdate.js +0 -26
- package/lib/commonjs/classes/HMSSpeakerUpdate.js.map +0 -1
- package/lib/module/classes/HMSSpeakerUpdate.js +0 -17
- package/lib/module/classes/HMSSpeakerUpdate.js.map +0 -1
- package/lib/typescript/classes/HMSSpeakerUpdate.d.ts +0 -11
- package/src/classes/HMSSpeakerUpdate.ts +0 -17
package/android/src/main/java/com/reactnativehmssdk/{HmssdkViewManager.kt → HMSSDKViewManager.kt}
RENAMED
|
@@ -11,7 +11,7 @@ import com.facebook.react.uimanager.SimpleViewManager
|
|
|
11
11
|
import com.facebook.react.uimanager.ThemedReactContext
|
|
12
12
|
import com.facebook.react.uimanager.annotations.ReactProp
|
|
13
13
|
|
|
14
|
-
class
|
|
14
|
+
class HMSSDKViewManager : SimpleViewManager<HMSView>() {
|
|
15
15
|
|
|
16
16
|
private var reactContext: ThemedReactContext? = null
|
|
17
17
|
|
|
@@ -19,9 +19,9 @@ class HmssdkViewManager : SimpleViewManager<HmsView>() {
|
|
|
19
19
|
return REACT_CLASS
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
public override fun createViewInstance(reactContext: ThemedReactContext):
|
|
22
|
+
public override fun createViewInstance(reactContext: ThemedReactContext): HMSView {
|
|
23
23
|
this.reactContext = reactContext
|
|
24
|
-
return
|
|
24
|
+
return HMSView(reactContext)
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
override fun getExportedCustomBubblingEventTypeConstants(): MutableMap<String, Any>? {
|
|
@@ -41,14 +41,14 @@ class HmssdkViewManager : SimpleViewManager<HmsView>() {
|
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
@RequiresApi(Build.VERSION_CODES.N)
|
|
44
|
-
override fun receiveCommand(@NonNull root:
|
|
44
|
+
override fun receiveCommand(@NonNull root: HMSView, commandId: String?, args: ReadableArray?) {
|
|
45
45
|
when (commandId) {
|
|
46
46
|
"capture" -> root.captureHmsView(args)
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
49
|
|
|
50
50
|
@RequiresApi(Build.VERSION_CODES.N)
|
|
51
|
-
override fun receiveCommand(@NonNull root:
|
|
51
|
+
override fun receiveCommand(@NonNull root: HMSView, commandId: Int, args: ReadableArray?) {
|
|
52
52
|
when (commandId) {
|
|
53
53
|
1 -> root.captureHmsView(args)
|
|
54
54
|
}
|
|
@@ -60,7 +60,7 @@ class HmssdkViewManager : SimpleViewManager<HmsView>() {
|
|
|
60
60
|
}
|
|
61
61
|
|
|
62
62
|
@ReactProp(name = "data")
|
|
63
|
-
fun setData(view:
|
|
63
|
+
fun setData(view: HMSView, data: ReadableMap) {
|
|
64
64
|
val trackId = data.getString("trackId")
|
|
65
65
|
val id = data.getString("id")
|
|
66
66
|
val mirror = data.getBoolean("mirror")
|
|
@@ -71,20 +71,20 @@ class HmssdkViewManager : SimpleViewManager<HmsView>() {
|
|
|
71
71
|
}
|
|
72
72
|
|
|
73
73
|
@ReactProp(name = "scaleType")
|
|
74
|
-
fun setScaleType(view:
|
|
74
|
+
fun setScaleType(view: HMSView, data: String?) {
|
|
75
75
|
view.updateScaleType(data)
|
|
76
76
|
}
|
|
77
77
|
|
|
78
78
|
@ReactProp(name = "setZOrderMediaOverlay")
|
|
79
|
-
fun setZOrderMediaOverlay(view:
|
|
79
|
+
fun setZOrderMediaOverlay(view: HMSView, data: Boolean?) {
|
|
80
80
|
view.updateZOrderMediaOverlay(data)
|
|
81
81
|
}
|
|
82
82
|
|
|
83
|
-
private fun getHms(): MutableMap<String,
|
|
84
|
-
return reactContext?.getNativeModule(
|
|
83
|
+
private fun getHms(): MutableMap<String, HMSRNSDK>? {
|
|
84
|
+
return reactContext?.getNativeModule(HMSManager::class.java)?.getHmsInstance()
|
|
85
85
|
}
|
|
86
86
|
|
|
87
87
|
companion object {
|
|
88
|
-
const val REACT_CLASS = "
|
|
88
|
+
const val REACT_CLASS = "HMSView"
|
|
89
89
|
}
|
|
90
90
|
}
|
|
@@ -18,7 +18,7 @@ import org.webrtc.RendererCommon
|
|
|
18
18
|
import org.webrtc.SurfaceViewRenderer
|
|
19
19
|
|
|
20
20
|
@SuppressLint("ViewConstructor")
|
|
21
|
-
class
|
|
21
|
+
class HMSView(context: ReactContext) : FrameLayout(context) {
|
|
22
22
|
private var surfaceView: SurfaceViewRenderer = SurfaceViewRenderer(context)
|
|
23
23
|
private var videoTrack: HMSVideoTrack? = null
|
|
24
24
|
private var scaleTypeApplied: Boolean = false
|
|
@@ -36,7 +36,7 @@ class HmsView(context: ReactContext) : FrameLayout(context) {
|
|
|
36
36
|
|
|
37
37
|
@RequiresApi(Build.VERSION_CODES.N)
|
|
38
38
|
fun captureHmsView(args: ReadableArray?) {
|
|
39
|
-
|
|
39
|
+
HMSHelper.captureSurfaceView(surfaceView, sdkId, args, context, id)
|
|
40
40
|
}
|
|
41
41
|
|
|
42
42
|
private fun onReceiveNativeEvent() {
|
|
@@ -99,7 +99,7 @@ class HmsView(context: ReactContext) : FrameLayout(context) {
|
|
|
99
99
|
fun setData(
|
|
100
100
|
id: String?,
|
|
101
101
|
trackId: String?,
|
|
102
|
-
hmsCollection: MutableMap<String,
|
|
102
|
+
hmsCollection: MutableMap<String, HMSRNSDK>,
|
|
103
103
|
mirror: Boolean?
|
|
104
104
|
) {
|
|
105
105
|
if (id != null) {
|
|
@@ -8,8 +8,6 @@ import android.os.Bundle
|
|
|
8
8
|
import androidx.activity.ComponentActivity
|
|
9
9
|
import androidx.activity.result.ActivityResultLauncher
|
|
10
10
|
import androidx.activity.result.contract.ActivityResultContracts
|
|
11
|
-
import com.facebook.react.bridge.Arguments
|
|
12
|
-
import com.facebook.react.bridge.WritableMap
|
|
13
11
|
import live.hms.video.error.HMSException
|
|
14
12
|
import live.hms.video.sdk.HMSActionResultListener
|
|
15
13
|
|
|
@@ -19,16 +17,16 @@ class HmsScreenshareActivity : ComponentActivity() {
|
|
|
19
17
|
if (result.resultCode == Activity.RESULT_OK) {
|
|
20
18
|
val mediaProjectionPermissionResultData: Intent? = result.data
|
|
21
19
|
val id = intent.getStringExtra("id")
|
|
22
|
-
|
|
20
|
+
HMSManager.hmsCollection[id]?.hmsSDK?.startScreenshare(
|
|
23
21
|
object : HMSActionResultListener {
|
|
24
22
|
override fun onError(error: HMSException) {
|
|
25
23
|
finish()
|
|
26
|
-
|
|
27
|
-
|
|
24
|
+
HMSManager.hmsCollection[id]?.screenshareCallback?.reject(error)
|
|
25
|
+
HMSManager.hmsCollection[id]?.emitHMSError(error)
|
|
28
26
|
}
|
|
29
27
|
override fun onSuccess() {
|
|
30
|
-
|
|
31
|
-
|
|
28
|
+
HMSManager.hmsCollection[id]?.screenshareCallback?.resolve(
|
|
29
|
+
HMSManager.hmsCollection[id]?.emitHMSSuccess()
|
|
32
30
|
)
|
|
33
31
|
finish()
|
|
34
32
|
}
|
|
@@ -37,15 +35,16 @@ class HmsScreenshareActivity : ComponentActivity() {
|
|
|
37
35
|
)
|
|
38
36
|
} else {
|
|
39
37
|
val id = intent.getStringExtra("id")
|
|
40
|
-
val error =
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
38
|
+
val error =
|
|
39
|
+
HMSException(
|
|
40
|
+
103,
|
|
41
|
+
"RESULT_CANCELED",
|
|
42
|
+
"RESULT_CANCELED",
|
|
43
|
+
"RESULT_CANCELED",
|
|
44
|
+
"RESULT_CANCELED"
|
|
45
|
+
)
|
|
46
|
+
HMSManager.hmsCollection[id]?.screenshareCallback?.reject(error)
|
|
47
|
+
HMSManager.hmsCollection[id]?.emitHMSError(error)
|
|
49
48
|
finish()
|
|
50
49
|
}
|
|
51
50
|
}
|
|
@@ -57,7 +56,7 @@ class HmsScreenshareActivity : ComponentActivity() {
|
|
|
57
56
|
|
|
58
57
|
private fun startScreenshare() {
|
|
59
58
|
val id = intent.getStringExtra("id")
|
|
60
|
-
val isScreenShared =
|
|
59
|
+
val isScreenShared = HMSManager.hmsCollection[id]?.hmsSDK?.isScreenShared()
|
|
61
60
|
if (isScreenShared !== null && !isScreenShared) {
|
|
62
61
|
try {
|
|
63
62
|
val mediaProjectionManager =
|
|
@@ -67,7 +66,7 @@ class HmsScreenshareActivity : ComponentActivity() {
|
|
|
67
66
|
println(e)
|
|
68
67
|
}
|
|
69
68
|
} else {
|
|
70
|
-
|
|
69
|
+
HMSManager.hmsCollection[id]?.emitHMSError(
|
|
71
70
|
HMSException(
|
|
72
71
|
103,
|
|
73
72
|
"SCREENSHARE_IS_ALREADY_RUNNING",
|
|
@@ -7,10 +7,10 @@ import com.facebook.react.uimanager.ViewManager
|
|
|
7
7
|
|
|
8
8
|
class HmssdkPackage : ReactPackage {
|
|
9
9
|
override fun createNativeModules(reactContext: ReactApplicationContext): List<NativeModule> {
|
|
10
|
-
return listOf(
|
|
10
|
+
return listOf(HMSManager(reactContext))
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
override fun createViewManagers(reactContext: ReactApplicationContext): List<ViewManager<*, *>> {
|
|
14
|
-
return listOf<ViewManager<*, *>>(
|
|
14
|
+
return listOf<ViewManager<*, *>>(HMSSDKViewManager())
|
|
15
15
|
}
|
|
16
16
|
}
|
|
@@ -1,27 +1,28 @@
|
|
|
1
1
|
import HMSSDK
|
|
2
2
|
import Foundation
|
|
3
3
|
|
|
4
|
-
class
|
|
4
|
+
class HMSDecoder: NSObject {
|
|
5
5
|
static func getHmsRoom (_ hmsRoom: HMSRoom?) -> [String: Any] {
|
|
6
6
|
|
|
7
7
|
guard let room = hmsRoom else { return [:] }
|
|
8
8
|
|
|
9
9
|
let id = room.roomID ?? ""
|
|
10
|
+
let sessionId = room.sessionID ?? ""
|
|
10
11
|
let name = room.name ?? ""
|
|
11
12
|
let metaData = room.metaData ?? ""
|
|
12
13
|
let count = room.peerCount ?? 0
|
|
13
|
-
let browserRecordingState =
|
|
14
|
-
let rtmpStreamingState =
|
|
15
|
-
let serverRecordingState =
|
|
16
|
-
let hlsStreamingState =
|
|
17
|
-
let hlsRecordingState =
|
|
14
|
+
let browserRecordingState = HMSDecoder.getHMSBrowserRecordingState(hmsRoom?.browserRecordingState)
|
|
15
|
+
let rtmpStreamingState = HMSDecoder.getHMSRtmpStreamingState(hmsRoom?.rtmpStreamingState)
|
|
16
|
+
let serverRecordingState = HMSDecoder.getHMSServerRecordingState(hmsRoom?.serverRecordingState)
|
|
17
|
+
let hlsStreamingState = HMSDecoder.getHlsStreamingState(hmsRoom?.hlsStreamingState)
|
|
18
|
+
let hlsRecordingState = HMSDecoder.getHlsRecordingState(hmsRoom?.hlsRecordingState)
|
|
18
19
|
var peers = [[String: Any]]()
|
|
19
20
|
|
|
20
21
|
for peer in room.peers {
|
|
21
22
|
peers.append(getHmsPeer(peer))
|
|
22
23
|
}
|
|
23
24
|
|
|
24
|
-
return ["id": id, "name": name, "metaData": metaData, "peers": peers, "browserRecordingState": browserRecordingState, "rtmpHMSRtmpStreamingState": rtmpStreamingState, "serverRecordingState": serverRecordingState, "hlsRecordingState": hlsRecordingState, "hlsStreamingState": hlsStreamingState, "peerCount": count]
|
|
25
|
+
return ["id": id, "name": name, "metaData": metaData, "peers": peers, "browserRecordingState": browserRecordingState, "rtmpHMSRtmpStreamingState": rtmpStreamingState, "serverRecordingState": serverRecordingState, "hlsRecordingState": hlsRecordingState, "hlsStreamingState": hlsStreamingState, "peerCount": count, "sessionId": sessionId]
|
|
25
26
|
}
|
|
26
27
|
|
|
27
28
|
static func getHmsPeer (_ hmsPeer: HMSPeer?) -> [String: Any] {
|
|
@@ -71,7 +72,7 @@ class HmsDecoder: NSObject {
|
|
|
71
72
|
let source = hmsTrack.source
|
|
72
73
|
let trackDescription = hmsTrack.trackDescription
|
|
73
74
|
let isMute = hmsTrack.isMute()
|
|
74
|
-
let type =
|
|
75
|
+
let type = HMSHelper.getHmsTrackType(hmsTrack.kind) ?? ""
|
|
75
76
|
|
|
76
77
|
return ["trackId": trackId, "source": source, "trackDescription": trackDescription, "isMute": isMute, "type": type, "kind": type]
|
|
77
78
|
}
|
|
@@ -84,7 +85,7 @@ class HmsDecoder: NSObject {
|
|
|
84
85
|
let source: String = hmsTrack.source
|
|
85
86
|
let trackDescription: String = hmsTrack.trackDescription
|
|
86
87
|
let isMute: Bool = hmsTrack.isMute()
|
|
87
|
-
let kind: String =
|
|
88
|
+
let kind: String = HMSHelper.getHmsTrackType(hmsTrack.kind) ?? ""
|
|
88
89
|
|
|
89
90
|
return ["trackId": trackId, "source": source, "trackDescription": trackDescription, "isMute": isMute, "type": kind, "kind": kind]
|
|
90
91
|
}
|
|
@@ -98,7 +99,7 @@ class HmsDecoder: NSObject {
|
|
|
98
99
|
let trackDescription = hmsTrack.trackDescription
|
|
99
100
|
let isMute = hmsTrack.isMute()
|
|
100
101
|
let isDegraded = hmsTrack.isDegraded()
|
|
101
|
-
let kind: String =
|
|
102
|
+
let kind: String = HMSHelper.getHmsTrackType(hmsTrack.kind) ?? ""
|
|
102
103
|
|
|
103
104
|
return ["trackId": trackId, "source": source, "trackDescription": trackDescription, "isMute": isMute, "isDegraded": isDegraded, "type": kind, "kind": kind]
|
|
104
105
|
}
|
|
@@ -140,12 +141,12 @@ class HmsDecoder: NSObject {
|
|
|
140
141
|
}
|
|
141
142
|
|
|
142
143
|
static func getHmsLocalAudioTrack(_ localAudio: HMSLocalAudioTrack) -> [String: Any] {
|
|
143
|
-
let type =
|
|
144
|
+
let type = HMSHelper.getHmsTrackType(localAudio.kind) ?? ""
|
|
144
145
|
return ["trackId": localAudio.trackId, "source": localAudio.source, "trackDescription": localAudio.trackDescription, "settings": getHmsAudioTrackSettings(localAudio.settings), "isMute": localAudio.isMute(), "type": type, "kind": type]
|
|
145
146
|
}
|
|
146
147
|
|
|
147
148
|
static func getHmsLocalVideoTrack(_ localVideo: HMSLocalVideoTrack) -> [String: Any] {
|
|
148
|
-
let type =
|
|
149
|
+
let type = HMSHelper.getHmsTrackType(localVideo.kind) ?? ""
|
|
149
150
|
return ["trackId": localVideo.trackId, "source": localVideo.source, "trackDescription": localVideo.trackDescription, "settings": getHmsVideoTrackSettings(localVideo.settings), "isMute": localVideo.isMute(), "type": type, "kind": type]
|
|
150
151
|
}
|
|
151
152
|
|
|
@@ -260,12 +261,12 @@ class HmsDecoder: NSObject {
|
|
|
260
261
|
}
|
|
261
262
|
|
|
262
263
|
static func getHMSRemoteAudioTrack(_ remoteAudio: HMSRemoteAudioTrack) -> [String: Any] {
|
|
263
|
-
let type =
|
|
264
|
+
let type = HMSHelper.getHmsTrackType(remoteAudio.kind) ?? ""
|
|
264
265
|
return ["trackId": remoteAudio.trackId, "source": remoteAudio.source, "trackDescription": remoteAudio.trackDescription, "playbackAllowed": remoteAudio.isPlaybackAllowed(), "isMute": remoteAudio.isMute(), "type": type, "kind": type]
|
|
265
266
|
}
|
|
266
267
|
|
|
267
268
|
static func getHMSRemoteVideoTrack(_ remoteVideo: HMSRemoteVideoTrack) -> [String: Any] {
|
|
268
|
-
let type =
|
|
269
|
+
let type = HMSHelper.getHmsTrackType(remoteVideo.kind) ?? ""
|
|
269
270
|
return ["trackId": remoteVideo.trackId, "source": remoteVideo.source, "trackDescription": remoteVideo.trackDescription, "layer": remoteVideo.layer.rawValue, "playbackAllowed": remoteVideo.isPlaybackAllowed(), "isMute": remoteVideo.isMute(), "isDegraded": remoteVideo.isDegraded(), "type": type, "kind": type]
|
|
270
271
|
}
|
|
271
272
|
|
|
@@ -275,13 +276,13 @@ class HmsDecoder: NSObject {
|
|
|
275
276
|
|
|
276
277
|
for track in tracks {
|
|
277
278
|
if let localVideo = track as? HMSLocalVideoTrack {
|
|
278
|
-
let type =
|
|
279
|
+
let type = HMSHelper.getHmsTrackType(localVideo.kind) ?? ""
|
|
279
280
|
let localVideoTrackData: [String: Any] = ["trackId": localVideo.trackId, "source": localVideo.source, "trackDescription": localVideo.trackDescription, "settings": getHmsVideoTrackSettings(localVideo.settings), "isMute": localVideo.isMute(), "kind": type, "type": type]
|
|
280
281
|
hmsTracks["videoTrack"] = localVideoTrackData
|
|
281
282
|
}
|
|
282
283
|
|
|
283
284
|
if let localAudio = track as? HMSLocalAudioTrack {
|
|
284
|
-
let type =
|
|
285
|
+
let type = HMSHelper.getHmsTrackType(localAudio.kind) ?? ""
|
|
285
286
|
let localAudioTrackData: [String: Any] = ["trackId": localAudio.trackId, "source": localAudio.source, "trackDescription": localAudio.trackDescription, "settings": getHmsAudioTrackSettings(localAudio.settings), "isMute": localAudio.isMute(), "kind": type, "type": type]
|
|
286
287
|
hmsTracks["audioTrack"] = localAudioTrackData
|
|
287
288
|
}
|
|
@@ -293,7 +294,7 @@ class HmsDecoder: NSObject {
|
|
|
293
294
|
var decodedRoles = [[String: Any]]()
|
|
294
295
|
if let extractedRoles = roles {
|
|
295
296
|
for role in extractedRoles {
|
|
296
|
-
decodedRoles.append(
|
|
297
|
+
decodedRoles.append(HMSDecoder.getHmsRole(role))
|
|
297
298
|
}
|
|
298
299
|
}
|
|
299
300
|
return decodedRoles
|
|
@@ -475,7 +476,7 @@ class HmsDecoder: NSObject {
|
|
|
475
476
|
return request
|
|
476
477
|
}
|
|
477
478
|
|
|
478
|
-
static func getError(_ errorObj: HMSError?) -> [String: Any] {
|
|
479
|
+
static func getError(_ errorObj: HMSError?) -> [String: Any]? {
|
|
479
480
|
if let error = errorObj {
|
|
480
481
|
let code = error.code
|
|
481
482
|
let description = error.description
|
|
@@ -488,7 +489,7 @@ class HmsDecoder: NSObject {
|
|
|
488
489
|
|
|
489
490
|
return ["code": code, "description": description, "localizedDescription": localizedDescription, "debugDescription": debugDescription, "message": message, "name": name, "action": action, "id": id]
|
|
490
491
|
} else {
|
|
491
|
-
return
|
|
492
|
+
return nil
|
|
492
493
|
}
|
|
493
494
|
}
|
|
494
495
|
|
|
@@ -496,7 +497,7 @@ class HmsDecoder: NSObject {
|
|
|
496
497
|
if let recordingState = data {
|
|
497
498
|
let running = recordingState.running
|
|
498
499
|
let startedAt = recordingState.startedAt?.timeIntervalSince1970 ?? 0
|
|
499
|
-
let error =
|
|
500
|
+
let error = HMSDecoder.getError(recordingState.error)
|
|
500
501
|
|
|
501
502
|
return ["running": running, "error": error, "startedAt": startedAt * 1000]
|
|
502
503
|
} else {
|
|
@@ -508,7 +509,7 @@ class HmsDecoder: NSObject {
|
|
|
508
509
|
if let streamingState = data {
|
|
509
510
|
let running = streamingState.running
|
|
510
511
|
let startedAt = streamingState.startedAt?.timeIntervalSince1970 ?? 0
|
|
511
|
-
let error =
|
|
512
|
+
let error = HMSDecoder.getError(streamingState.error)
|
|
512
513
|
|
|
513
514
|
return ["running": running, "error": error, "startedAt": startedAt * 1000]
|
|
514
515
|
} else {
|
|
@@ -520,7 +521,7 @@ class HmsDecoder: NSObject {
|
|
|
520
521
|
if let recordingState = data {
|
|
521
522
|
let running = recordingState.running
|
|
522
523
|
let startedAt = recordingState.startedAt?.timeIntervalSince1970 ?? 0
|
|
523
|
-
let error =
|
|
524
|
+
let error = HMSDecoder.getError(recordingState.error)
|
|
524
525
|
|
|
525
526
|
return ["running": running, "error": error, "startedAt": startedAt * 1000]
|
|
526
527
|
} else {
|
|
@@ -531,7 +532,7 @@ class HmsDecoder: NSObject {
|
|
|
531
532
|
static func getHlsStreamingState(_ data: HMSHLSStreamingState?) -> [String: Any] {
|
|
532
533
|
if let streamingState = data {
|
|
533
534
|
let running = streamingState.running
|
|
534
|
-
let variants =
|
|
535
|
+
let variants = HMSDecoder.getHMSHlsVariant(streamingState.variants)
|
|
535
536
|
|
|
536
537
|
return ["running": running, "variants": variants]
|
|
537
538
|
} else {
|
|
@@ -578,7 +579,7 @@ class HmsDecoder: NSObject {
|
|
|
578
579
|
}
|
|
579
580
|
|
|
580
581
|
static func getLocalVideoStats(_ data: HMSLocalVideoStats) -> [String: Any] {
|
|
581
|
-
return ["roundTripTime": data.roundTripTime, "bytesSent": data.bytesSent, "bitrate": data.bitrate, "resolution":
|
|
582
|
+
return ["roundTripTime": data.roundTripTime, "bytesSent": data.bytesSent, "bitrate": data.bitrate, "resolution": HMSDecoder.getHmsVideoResolution(data.resolution), "frameRate": data.frameRate]
|
|
582
583
|
}
|
|
583
584
|
|
|
584
585
|
static func getRemoteAudioStats(_ data: HMSRemoteAudioStats) -> [String: Any] {
|
|
@@ -586,11 +587,11 @@ class HmsDecoder: NSObject {
|
|
|
586
587
|
}
|
|
587
588
|
|
|
588
589
|
static func getRemoteVideoStats(_ data: HMSRemoteVideoStats) -> [String: Any] {
|
|
589
|
-
return ["bitrate": data.bitrate, "packetsReceived": data.packetsReceived, "packetsLost": data.packetsLost, "bytesReceived": data.bytesReceived, "jitter": data.jitter, "resolution":
|
|
590
|
+
return ["bitrate": data.bitrate, "packetsReceived": data.packetsReceived, "packetsLost": data.packetsLost, "bytesReceived": data.bytesReceived, "jitter": data.jitter, "resolution": HMSDecoder.getHmsVideoResolution(data.resolution), "frameRate": data.frameRate]
|
|
590
591
|
}
|
|
591
592
|
|
|
592
593
|
static func getHmsMessageRecipient(_ recipient: HMSMessageRecipient) -> [String: Any] {
|
|
593
|
-
return ["recipientPeer": getHmsPeer(recipient.peerRecipient), "recipientRoles": getAllRoles(recipient.rolesRecipient), "
|
|
594
|
+
return ["recipientPeer": getHmsPeer(recipient.peerRecipient), "recipientRoles": getAllRoles(recipient.rolesRecipient), "recipientType": self.getRecipientType(from: recipient.type)]
|
|
594
595
|
}
|
|
595
596
|
|
|
596
597
|
static func getHmsNetworkQuality(_ hmsNetworkQuality: HMSNetworkQuality?) -> [String: Any] {
|
|
@@ -1,7 +1,20 @@
|
|
|
1
1
|
import HMSSDK
|
|
2
2
|
import Foundation
|
|
3
3
|
|
|
4
|
-
class
|
|
4
|
+
class HMSHelper: NSObject {
|
|
5
|
+
|
|
6
|
+
static func getUnavailableRequiredKey(_ data: NSDictionary, _ requiredKeys: [String]) -> String {
|
|
7
|
+
for (key) in requiredKeys {
|
|
8
|
+
let value = data.object(forKey: key)
|
|
9
|
+
if (value == nil) {
|
|
10
|
+
return key + "_Is_Required"
|
|
11
|
+
}
|
|
12
|
+
if (value is NSNull) {
|
|
13
|
+
return key + "_Is_Null"
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
return "SEND_ALL_REQUIRED_KEYS"
|
|
17
|
+
}
|
|
5
18
|
|
|
6
19
|
static func getPeerFromPeerId(_ peerID: String?, remotePeers: [HMSRemotePeer]?, localPeer: HMSLocalPeer?) -> HMSPeer? {
|
|
7
20
|
|
|
@@ -113,7 +126,7 @@ class HmsHelper: NSObject {
|
|
|
113
126
|
return nil
|
|
114
127
|
}
|
|
115
128
|
|
|
116
|
-
static func getHms(_ credentials: NSDictionary, _ hmsCollection: [String:
|
|
129
|
+
static func getHms(_ credentials: NSDictionary, _ hmsCollection: [String: HMSRNSDK]) -> HMSRNSDK? {
|
|
117
130
|
guard let id = credentials.value(forKey: "id") as? String,
|
|
118
131
|
let hms = hmsCollection[id]
|
|
119
132
|
else {
|
|
@@ -130,13 +143,19 @@ class HmsHelper: NSObject {
|
|
|
130
143
|
let maxFrameRate = data.value(forKey: "maxFrameRate") as? Int,
|
|
131
144
|
let cameraFacing = data.value(forKey: "cameraFacing") as? String,
|
|
132
145
|
let trackDescription = data.value(forKey: "trackDescription") as? String?,
|
|
133
|
-
let resolutionObj =
|
|
146
|
+
let resolutionObj = HMSHelper.getVideoResolution(resolution ?? [:])
|
|
134
147
|
else {
|
|
135
148
|
return nil
|
|
136
149
|
}
|
|
137
|
-
let codecEncoded =
|
|
138
|
-
let cameraFacingEncoded =
|
|
139
|
-
let hmsTrackSettings = HMSVideoTrackSettings(codec: codecEncoded,
|
|
150
|
+
let codecEncoded = HMSHelper.getVideoCodec(codec)
|
|
151
|
+
let cameraFacingEncoded = HMSHelper.getCameraFacing(cameraFacing)
|
|
152
|
+
let hmsTrackSettings = HMSVideoTrackSettings(codec: codecEncoded,
|
|
153
|
+
resolution: resolutionObj,
|
|
154
|
+
maxBitrate: maxBitrate,
|
|
155
|
+
maxFrameRate: maxFrameRate,
|
|
156
|
+
cameraFacing: cameraFacingEncoded,
|
|
157
|
+
trackDescription: trackDescription,
|
|
158
|
+
videoPlugins: nil)
|
|
140
159
|
return hmsTrackSettings
|
|
141
160
|
}
|
|
142
161
|
|
|
@@ -201,7 +220,7 @@ class HmsHelper: NSObject {
|
|
|
201
220
|
static func getHMSHLSMeetingURLVariants(_ variants: [[String: Any]]?) -> [HMSHLSMeetingURLVariant] {
|
|
202
221
|
var hlsVariants: [HMSHLSMeetingURLVariant] = []
|
|
203
222
|
for variant in variants ?? [] {
|
|
204
|
-
let meetingURLVariant =
|
|
223
|
+
let meetingURLVariant = HMSHelper.getHMSHLSMeetingURLVariant(variant)
|
|
205
224
|
if let extractedVariant = meetingURLVariant {
|
|
206
225
|
hlsVariants.append(extractedVariant)
|
|
207
226
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#import <React/RCTEventEmitter.h>
|
|
2
2
|
#import <Foundation/Foundation.h>
|
|
3
3
|
|
|
4
|
-
@interface RCT_EXTERN_MODULE(
|
|
4
|
+
@interface RCT_EXTERN_MODULE(HMSManager, RCTEventEmitter)
|
|
5
5
|
|
|
6
6
|
RCT_EXTERN_METHOD(join: (NSDictionary) credentials)
|
|
7
7
|
RCT_EXTERN_METHOD(preview: (NSDictionary) credentials)
|
|
@@ -36,4 +36,5 @@ RCT_EXTERN_METHOD(stopHLSStreaming: (NSDictionary) data :(RCTPromiseResolveBlock
|
|
|
36
36
|
RCT_EXTERN_METHOD(changeName: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
|
|
37
37
|
RCT_EXTERN_METHOD(enableRTCStats: (NSDictionary) data)
|
|
38
38
|
RCT_EXTERN_METHOD(disableRTCStats: (NSDictionary) data)
|
|
39
|
+
RCT_EXTERN_METHOD(destroy: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
|
|
39
40
|
@end
|