@100mslive/react-native-hms 0.8.0 → 0.8.4
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 +37 -39
- package/android/.gradle/6.9/executionHistory/executionHistory.lock +0 -0
- package/android/.gradle/6.9/fileHashes/fileHashes.lock +0 -0
- package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
- package/android/.gradle/buildOutputCleanup/cache.properties +1 -1
- 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/build.gradle +1 -2
- package/android/src/main/java/com/reactnativehmssdk/HmsDecoder.kt +249 -230
- package/android/src/main/java/com/reactnativehmssdk/HmsHelper.kt +145 -13
- package/android/src/main/java/com/reactnativehmssdk/HmsModule.kt +56 -21
- package/android/src/main/java/com/reactnativehmssdk/HmsSDK.kt +463 -247
- package/android/src/main/java/com/reactnativehmssdk/HmsView.kt +15 -18
- package/android/src/main/java/com/reactnativehmssdk/HmssdkPackage.kt +1 -2
- package/android/src/main/java/com/reactnativehmssdk/HmssdkViewManager.kt +4 -10
- package/ios/HmsDecoder.swift +135 -35
- package/ios/HmsHelper.swift +103 -1
- package/ios/HmsManager.m +13 -9
- package/ios/HmsManager.swift +59 -24
- package/ios/HmsSDK.swift +322 -85
- package/ios/HmsView.swift +1 -1
- package/lib/commonjs/classes/HMSAudioTrackSettings.js +3 -0
- package/lib/commonjs/classes/HMSAudioTrackSettings.js.map +1 -1
- package/lib/commonjs/classes/HMSBrowserRecordingState.js +23 -0
- package/lib/commonjs/classes/HMSBrowserRecordingState.js.map +1 -0
- package/lib/commonjs/classes/HMSCameraFacing.js +14 -0
- package/lib/commonjs/classes/HMSCameraFacing.js.map +1 -0
- package/lib/commonjs/classes/HMSChangeTrackStateRequest.js +3 -0
- package/lib/commonjs/classes/HMSChangeTrackStateRequest.js.map +1 -1
- package/lib/commonjs/classes/HMSConfig.js +3 -1
- package/lib/commonjs/classes/HMSConfig.js.map +1 -1
- package/lib/commonjs/classes/HMSEncoder.js +27 -7
- package/lib/commonjs/classes/HMSEncoder.js.map +1 -1
- package/lib/commonjs/classes/HMSException.js +30 -0
- package/lib/commonjs/classes/HMSException.js.map +1 -0
- package/lib/commonjs/classes/HMSHelper.js +2 -2
- package/lib/commonjs/classes/HMSHelper.js.map +1 -1
- package/lib/commonjs/classes/HMSLocalAudioTrack.js +32 -0
- package/lib/commonjs/classes/HMSLocalAudioTrack.js.map +1 -1
- package/lib/commonjs/classes/HMSLocalPeer.js.map +1 -1
- package/lib/commonjs/classes/HMSLocalVideoTrack.js +18 -0
- package/lib/commonjs/classes/HMSLocalVideoTrack.js.map +1 -1
- package/lib/commonjs/classes/HMSLogger.js +28 -1
- package/lib/commonjs/classes/HMSLogger.js.map +1 -1
- package/lib/commonjs/classes/HMSPeer.js +3 -0
- package/lib/commonjs/classes/HMSPeer.js.map +1 -1
- package/lib/commonjs/classes/HMSPeerUpdate.js +1 -0
- package/lib/commonjs/classes/HMSPeerUpdate.js.map +1 -1
- package/lib/commonjs/classes/HMSPermissions.js +6 -0
- package/lib/commonjs/classes/HMSPermissions.js.map +1 -1
- package/lib/commonjs/classes/HMSRTMPConfig.js +26 -0
- package/lib/commonjs/classes/HMSRTMPConfig.js.map +1 -0
- package/lib/commonjs/classes/HMSRemoteAudioTrack.js +19 -0
- package/lib/commonjs/classes/HMSRemoteAudioTrack.js.map +1 -1
- package/lib/commonjs/classes/HMSRemotePeer.js.map +1 -1
- package/lib/commonjs/classes/HMSRemoteVideoTrack.js +19 -0
- package/lib/commonjs/classes/HMSRemoteVideoTrack.js.map +1 -1
- package/lib/commonjs/classes/HMSRoom.js +9 -0
- package/lib/commonjs/classes/HMSRoom.js.map +1 -1
- package/lib/commonjs/classes/HMSRtmpStreamingState.js +23 -0
- package/lib/commonjs/classes/HMSRtmpStreamingState.js.map +1 -0
- package/lib/commonjs/classes/HMSSDK.js +229 -125
- package/lib/commonjs/classes/HMSSDK.js.map +1 -1
- package/lib/commonjs/classes/HMSServerRecordingState.js +23 -0
- package/lib/commonjs/classes/HMSServerRecordingState.js.map +1 -0
- package/lib/commonjs/classes/HMSTrack.js +2 -19
- package/lib/commonjs/classes/HMSTrack.js.map +1 -1
- package/lib/commonjs/classes/HMSTrackSettings.js +3 -0
- package/lib/commonjs/classes/HMSTrackSettings.js.map +1 -1
- package/lib/commonjs/classes/HMSVideoCodec.js +4 -4
- package/lib/commonjs/classes/HMSVideoCodec.js.map +1 -1
- package/lib/commonjs/classes/HMSVideoResolution.js +23 -0
- package/lib/commonjs/classes/HMSVideoResolution.js.map +1 -0
- package/lib/commonjs/classes/HMSVideoSettings.js.map +1 -1
- package/lib/commonjs/classes/HMSVideoTrackSettings.js +0 -3
- package/lib/commonjs/classes/HMSVideoTrackSettings.js.map +1 -1
- package/lib/commonjs/index.js +98 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/classes/HMSAudioTrackSettings.js +3 -0
- package/lib/module/classes/HMSAudioTrackSettings.js.map +1 -1
- package/lib/module/classes/HMSBrowserRecordingState.js +14 -0
- package/lib/module/classes/HMSBrowserRecordingState.js.map +1 -0
- package/lib/module/classes/HMSCameraFacing.js +7 -0
- package/lib/module/classes/HMSCameraFacing.js.map +1 -0
- package/lib/module/classes/HMSChangeTrackStateRequest.js +3 -0
- package/lib/module/classes/HMSChangeTrackStateRequest.js.map +1 -1
- package/lib/module/classes/HMSConfig.js +3 -1
- package/lib/module/classes/HMSConfig.js.map +1 -1
- package/lib/module/classes/HMSEncoder.js +26 -7
- package/lib/module/classes/HMSEncoder.js.map +1 -1
- package/lib/module/classes/HMSException.js +21 -0
- package/lib/module/classes/HMSException.js.map +1 -0
- package/lib/module/classes/HMSHelper.js +2 -2
- package/lib/module/classes/HMSHelper.js.map +1 -1
- package/lib/module/classes/HMSLocalAudioTrack.js +30 -1
- package/lib/module/classes/HMSLocalAudioTrack.js.map +1 -1
- package/lib/module/classes/HMSLocalPeer.js.map +1 -1
- package/lib/module/classes/HMSLocalVideoTrack.js +15 -0
- package/lib/module/classes/HMSLocalVideoTrack.js.map +1 -1
- package/lib/module/classes/HMSLogger.js +28 -1
- package/lib/module/classes/HMSLogger.js.map +1 -1
- package/lib/module/classes/HMSPeer.js +3 -0
- package/lib/module/classes/HMSPeer.js.map +1 -1
- package/lib/module/classes/HMSPeerUpdate.js +1 -0
- package/lib/module/classes/HMSPeerUpdate.js.map +1 -1
- package/lib/module/classes/HMSPermissions.js +6 -0
- package/lib/module/classes/HMSPermissions.js.map +1 -1
- package/lib/module/classes/HMSRTMPConfig.js +17 -0
- package/lib/module/classes/HMSRTMPConfig.js.map +1 -0
- package/lib/module/classes/HMSRemoteAudioTrack.js +16 -0
- package/lib/module/classes/HMSRemoteAudioTrack.js.map +1 -1
- package/lib/module/classes/HMSRemotePeer.js.map +1 -1
- package/lib/module/classes/HMSRemoteVideoTrack.js +16 -0
- package/lib/module/classes/HMSRemoteVideoTrack.js.map +1 -1
- package/lib/module/classes/HMSRoom.js +9 -0
- package/lib/module/classes/HMSRoom.js.map +1 -1
- package/lib/module/classes/HMSRtmpStreamingState.js +14 -0
- package/lib/module/classes/HMSRtmpStreamingState.js.map +1 -0
- package/lib/module/classes/HMSSDK.js +227 -125
- package/lib/module/classes/HMSSDK.js.map +1 -1
- package/lib/module/classes/HMSServerRecordingState.js +14 -0
- package/lib/module/classes/HMSServerRecordingState.js.map +1 -0
- package/lib/module/classes/HMSTrack.js +2 -17
- package/lib/module/classes/HMSTrack.js.map +1 -1
- package/lib/module/classes/HMSTrackSettings.js +3 -0
- package/lib/module/classes/HMSTrackSettings.js.map +1 -1
- package/lib/module/classes/HMSVideoCodec.js +4 -4
- package/lib/module/classes/HMSVideoCodec.js.map +1 -1
- package/lib/module/classes/HMSVideoResolution.js +14 -0
- package/lib/module/classes/HMSVideoResolution.js.map +1 -0
- package/lib/module/classes/HMSVideoSettings.js.map +1 -1
- package/lib/module/classes/HMSVideoTrackSettings.js +0 -3
- package/lib/module/classes/HMSVideoTrackSettings.js.map +1 -1
- package/lib/module/index.js +7 -0
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/classes/HMSAudioTrackSettings.d.ts +3 -0
- package/lib/typescript/classes/HMSBrowserRecordingState.d.ts +9 -0
- package/lib/typescript/classes/HMSCameraFacing.d.ts +4 -0
- package/lib/typescript/classes/HMSChangeTrackStateRequest.d.ts +2 -0
- package/lib/typescript/classes/HMSConfig.d.ts +2 -0
- package/lib/typescript/classes/HMSEncoder.d.ts +3 -1
- package/lib/typescript/classes/HMSException.d.ts +22 -0
- package/lib/typescript/classes/HMSLocalAudioTrack.d.ts +1 -0
- package/lib/typescript/classes/HMSLocalPeer.d.ts +4 -0
- package/lib/typescript/classes/HMSLogger.d.ts +7 -0
- package/lib/typescript/classes/HMSPeer.d.ts +2 -0
- package/lib/typescript/classes/HMSPeerUpdate.d.ts +1 -0
- package/lib/typescript/classes/HMSPermissions.d.ts +4 -0
- package/lib/typescript/classes/HMSRTMPConfig.d.ts +10 -0
- package/lib/typescript/classes/HMSRemotePeer.d.ts +1 -0
- package/lib/typescript/classes/HMSRoom.d.ts +9 -0
- package/lib/typescript/classes/HMSRtmpStreamingState.d.ts +9 -0
- package/lib/typescript/classes/HMSSDK.d.ts +22 -13
- package/lib/typescript/classes/HMSServerRecordingState.d.ts +9 -0
- package/lib/typescript/classes/HMSTrack.d.ts +1 -1
- package/lib/typescript/classes/HMSTrackSettings.d.ts +2 -0
- package/lib/typescript/classes/HMSVideoCodec.d.ts +4 -4
- package/lib/typescript/classes/HMSVideoResolution.d.ts +8 -0
- package/lib/typescript/classes/HMSVideoSettings.d.ts +3 -3
- package/lib/typescript/classes/HMSVideoTrackSettings.d.ts +13 -10
- package/lib/typescript/index.d.ts +7 -0
- package/package.json +2 -1
- package/src/classes/HMSAudioTrackSettings.ts +9 -1
- package/src/classes/HMSBrowserRecordingState.ts +11 -0
- package/src/classes/HMSCameraFacing.ts +4 -0
- package/src/classes/HMSChangeTrackStateRequest.ts +7 -1
- package/src/classes/HMSConfig.ts +3 -1
- package/src/classes/HMSEncoder.ts +22 -2
- package/src/classes/HMSException.ts +33 -0
- package/src/classes/HMSHelper.ts +2 -2
- package/src/classes/HMSLocalAudioTrack.ts +29 -1
- package/src/classes/HMSLocalPeer.ts +4 -0
- package/src/classes/HMSLocalVideoTrack.ts +15 -0
- package/src/classes/HMSLogger.ts +14 -1
- package/src/classes/HMSPeer.ts +3 -0
- package/src/classes/HMSPeerUpdate.ts +1 -0
- package/src/classes/HMSPermissions.ts +6 -0
- package/src/classes/HMSRTMPConfig.ts +15 -0
- package/src/classes/HMSRemoteAudioTrack.ts +16 -0
- package/src/classes/HMSRemotePeer.ts +1 -0
- package/src/classes/HMSRemoteVideoTrack.ts +16 -0
- package/src/classes/HMSRoom.ts +12 -0
- package/src/classes/HMSRtmpStreamingState.ts +11 -0
- package/src/classes/HMSSDK.tsx +170 -71
- package/src/classes/HMSServerRecordingState.ts +11 -0
- package/src/classes/HMSTrack.ts +2 -15
- package/src/classes/HMSTrackSettings.ts +3 -0
- package/src/classes/HMSVideoCodec.ts +4 -4
- package/src/classes/HMSVideoResolution.ts +9 -0
- package/src/classes/HMSVideoSettings.ts +3 -3
- package/src/classes/HMSVideoTrackSettings.ts +13 -10
- package/src/index.ts +7 -0
- package/android/.gradle/6.9/executionHistory/executionHistory.bin +0 -0
- package/android/.gradle/6.9/fileHashes/fileHashes.bin +0 -0
- package/android/.gradle/6.9/fileHashes/resourceHashesCache.bin +0 -0
- package/android/.gradle/6.9/javaCompile/classAnalysis.bin +0 -0
- package/android/.gradle/6.9/javaCompile/jarAnalysis.bin +0 -0
- package/android/.gradle/6.9/javaCompile/javaCompile.lock +0 -0
- package/android/.gradle/6.9/javaCompile/taskHistory.bin +0 -0
- package/android/.gradle/buildOutputCleanup/outputFiles.bin +0 -0
- package/android/.project +0 -34
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
package com.reactnativehmssdk
|
|
2
2
|
|
|
3
|
+
import android.annotation.SuppressLint
|
|
3
4
|
import android.widget.FrameLayout
|
|
4
5
|
import com.facebook.react.bridge.ReactContext
|
|
5
|
-
import live.hms.video.media.tracks.HMSTrackSource
|
|
6
6
|
import live.hms.video.media.tracks.HMSTrackType
|
|
7
7
|
import live.hms.video.media.tracks.HMSVideoTrack
|
|
8
8
|
import live.hms.video.utils.SharedEglContext
|
|
9
9
|
import org.webrtc.RendererCommon
|
|
10
10
|
import org.webrtc.SurfaceViewRenderer
|
|
11
11
|
|
|
12
|
+
@SuppressLint("ViewConstructor")
|
|
12
13
|
class HmsView(context: ReactContext) : FrameLayout(context) {
|
|
13
|
-
private var surfaceView: SurfaceViewRenderer
|
|
14
|
+
private var surfaceView: SurfaceViewRenderer = SurfaceViewRenderer(context)
|
|
14
15
|
private var videoTrack: HMSVideoTrack? = null
|
|
15
16
|
private var localTrack: String? = null
|
|
16
17
|
|
|
17
18
|
init {
|
|
18
|
-
surfaceView = SurfaceViewRenderer(context)
|
|
19
19
|
surfaceView.setEnableHardwareScaler(true)
|
|
20
20
|
surfaceView.setScalingType(RendererCommon.ScalingType.SCALE_ASPECT_FIT)
|
|
21
21
|
addView(surfaceView)
|
|
@@ -58,11 +58,10 @@ class HmsView(context: ReactContext) : FrameLayout(context) {
|
|
|
58
58
|
fun setData(
|
|
59
59
|
id: String?,
|
|
60
60
|
trackId: String?,
|
|
61
|
-
sink: Boolean?,
|
|
62
61
|
hmsCollection: MutableMap<String, HmsSDK>,
|
|
63
62
|
mirror: Boolean?
|
|
64
63
|
) {
|
|
65
|
-
var sdkId
|
|
64
|
+
var sdkId = "12345"
|
|
66
65
|
|
|
67
66
|
if (id != null) {
|
|
68
67
|
sdkId = id
|
|
@@ -81,23 +80,21 @@ class HmsView(context: ReactContext) : FrameLayout(context) {
|
|
|
81
80
|
}
|
|
82
81
|
|
|
83
82
|
val remotePeers = hms.getRemotePeers()
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
val videoTrackId = peer.videoTrack?.trackId
|
|
83
|
+
for (peer in remotePeers) {
|
|
84
|
+
val videoTrackId = peer.videoTrack?.trackId
|
|
87
85
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
return
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
if (videoTrackId == localTrack) {
|
|
97
|
-
videoTrack = peer.videoTrack
|
|
86
|
+
val auxiliaryTracks = peer.auxiliaryTracks
|
|
87
|
+
for (track in auxiliaryTracks) {
|
|
88
|
+
val auxTrackId = track.trackId
|
|
89
|
+
if (trackId == auxTrackId && track.type == HMSTrackType.VIDEO && !track.isMute) {
|
|
90
|
+
videoTrack = track as HMSVideoTrack
|
|
98
91
|
return
|
|
99
92
|
}
|
|
100
93
|
}
|
|
94
|
+
if (videoTrackId == localTrack) {
|
|
95
|
+
videoTrack = peer.videoTrack
|
|
96
|
+
return
|
|
97
|
+
}
|
|
101
98
|
}
|
|
102
99
|
}
|
|
103
100
|
}
|
|
@@ -4,7 +4,6 @@ import com.facebook.react.ReactPackage
|
|
|
4
4
|
import com.facebook.react.bridge.NativeModule
|
|
5
5
|
import com.facebook.react.bridge.ReactApplicationContext
|
|
6
6
|
import com.facebook.react.uimanager.ViewManager
|
|
7
|
-
import java.util.*
|
|
8
7
|
|
|
9
8
|
class HmssdkPackage : ReactPackage {
|
|
10
9
|
override fun createNativeModules(reactContext: ReactApplicationContext): List<NativeModule> {
|
|
@@ -12,6 +11,6 @@ class HmssdkPackage : ReactPackage {
|
|
|
12
11
|
}
|
|
13
12
|
|
|
14
13
|
override fun createViewManagers(reactContext: ReactApplicationContext): List<ViewManager<*, *>> {
|
|
15
|
-
return
|
|
14
|
+
return listOf<ViewManager<*, *>>(HmssdkViewManager())
|
|
16
15
|
}
|
|
17
16
|
}
|
|
@@ -13,26 +13,21 @@ class HmssdkViewManager : SimpleViewManager<HmsView>() {
|
|
|
13
13
|
return REACT_CLASS
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
override fun onDropViewInstance(view: HmsView) {
|
|
17
|
-
super.onDropViewInstance(view)
|
|
18
|
-
}
|
|
19
|
-
|
|
20
16
|
public override fun createViewInstance(reactContext: ThemedReactContext): HmsView {
|
|
21
17
|
this.reactContext = reactContext
|
|
22
|
-
|
|
23
|
-
return view
|
|
18
|
+
return HmsView(reactContext)
|
|
24
19
|
}
|
|
25
20
|
|
|
26
21
|
@ReactProp(name = "data")
|
|
27
22
|
fun setData(view: HmsView, data: ReadableMap) {
|
|
28
23
|
val trackId = data.getString("trackId")
|
|
29
|
-
val sink = data.getBoolean("sink")
|
|
24
|
+
// val sink = data.getBoolean("sink")
|
|
30
25
|
val id = data.getString("id")
|
|
31
26
|
val mirror = data.getBoolean("mirror")
|
|
32
27
|
|
|
33
28
|
val hmsCollection = getHms()
|
|
34
29
|
if (hmsCollection != null) {
|
|
35
|
-
view.setData(id, trackId,
|
|
30
|
+
view.setData(id, trackId, hmsCollection, mirror)
|
|
36
31
|
}
|
|
37
32
|
// do the processing here
|
|
38
33
|
}
|
|
@@ -43,8 +38,7 @@ class HmssdkViewManager : SimpleViewManager<HmsView>() {
|
|
|
43
38
|
}
|
|
44
39
|
|
|
45
40
|
private fun getHms(): MutableMap<String, HmsSDK>? {
|
|
46
|
-
|
|
47
|
-
return hmsCollection
|
|
41
|
+
return reactContext?.getNativeModule(HmsModule::class.java)?.getHmsInstance()
|
|
48
42
|
}
|
|
49
43
|
|
|
50
44
|
companion object {
|
package/ios/HmsDecoder.swift
CHANGED
|
@@ -9,13 +9,16 @@ class HmsDecoder: NSObject {
|
|
|
9
9
|
let id = room.roomID ?? ""
|
|
10
10
|
let name = room.name ?? ""
|
|
11
11
|
let metaData = room.metaData ?? ""
|
|
12
|
+
let browserRecordingState = HmsDecoder.getHMSBrowserRecordingState(hmsRoom?.browserRecordingState)
|
|
13
|
+
let rtmpStreamingState = HmsDecoder.getHMSRtmpStreamingState(hmsRoom?.rtmpStreamingState)
|
|
14
|
+
let serverRecordingState = HmsDecoder.getHMSServerRecordingState(hmsRoom?.serverRecordingState)
|
|
12
15
|
var peers = [[String: Any]]()
|
|
13
16
|
|
|
14
17
|
for peer in room.peers {
|
|
15
18
|
peers.append(getHmsPeer(peer))
|
|
16
19
|
}
|
|
17
20
|
|
|
18
|
-
return ["id": id, "name": name, "metaData": metaData, "peers": peers]
|
|
21
|
+
return ["id": id, "name": name, "metaData": metaData, "peers": peers, "browserRecordingState": browserRecordingState, "rtmpHMSRtmpStreamingState": rtmpStreamingState, "serverRecordingState": serverRecordingState]
|
|
19
22
|
}
|
|
20
23
|
|
|
21
24
|
static func getHmsPeer (_ peer: HMSPeer) -> [String: Any] {
|
|
@@ -25,27 +28,34 @@ class HmsDecoder: NSObject {
|
|
|
25
28
|
let isLocal = peer.isLocal
|
|
26
29
|
let customerUserID = peer.customerUserID ?? ""
|
|
27
30
|
let customerDescription = peer.metadata ?? ""
|
|
31
|
+
let metadata = peer.metadata ?? ""
|
|
28
32
|
let audioTrack = getHmsAudioTrack(peer.audioTrack)
|
|
29
33
|
let videoTrack = getHmsVideoTrack(peer.videoTrack)
|
|
30
34
|
let role = getHmsRole(peer.role)
|
|
31
35
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
for track in peer.auxiliaryTracks ?? [] {
|
|
35
|
-
auxiliaryTracks.append(getHmsTrack(track))
|
|
36
|
-
}
|
|
36
|
+
let auxiliaryTracks = getAllTracks(peer.auxiliaryTracks ?? [] )
|
|
37
37
|
|
|
38
38
|
return ["peerID": peerID,
|
|
39
39
|
"name": name,
|
|
40
40
|
"isLocal": isLocal,
|
|
41
41
|
"customerUserID": customerUserID,
|
|
42
42
|
"customerDescription": customerDescription,
|
|
43
|
+
"metadata": metadata,
|
|
43
44
|
"audioTrack": audioTrack,
|
|
44
45
|
"videoTrack": videoTrack,
|
|
45
46
|
"auxiliaryTracks": auxiliaryTracks,
|
|
46
47
|
"role": role]
|
|
47
48
|
}
|
|
48
49
|
|
|
50
|
+
static func getAllTracks (_ tracks: [HMSTrack]) -> [[String: Any]] {
|
|
51
|
+
var auxiliaryTracks = [[String: Any]]()
|
|
52
|
+
|
|
53
|
+
for track in tracks {
|
|
54
|
+
auxiliaryTracks.append(getHmsTrack(track))
|
|
55
|
+
}
|
|
56
|
+
return auxiliaryTracks
|
|
57
|
+
}
|
|
58
|
+
|
|
49
59
|
static func getHmsTrack (_ track: HMSTrack?) -> [String: Any] {
|
|
50
60
|
|
|
51
61
|
guard let hmsTrack = track else { return [:] }
|
|
@@ -54,9 +64,9 @@ class HmsDecoder: NSObject {
|
|
|
54
64
|
let source = hmsTrack.source
|
|
55
65
|
let trackDescription = hmsTrack.trackDescription
|
|
56
66
|
let isMute = hmsTrack.isMute()
|
|
57
|
-
let type = HmsHelper.getHmsTrackType(hmsTrack.kind)
|
|
67
|
+
let type = HmsHelper.getHmsTrackType(hmsTrack.kind) ?? ""
|
|
58
68
|
|
|
59
|
-
return ["trackId": trackId, "source": source, "trackDescription": trackDescription, "isMute": isMute, "type": type]
|
|
69
|
+
return ["trackId": trackId, "source": source, "trackDescription": trackDescription, "isMute": isMute, "type": type, "kind": type]
|
|
60
70
|
}
|
|
61
71
|
|
|
62
72
|
static func getHmsAudioTrack (_ hmsAudioTrack: HMSAudioTrack?) -> [String: Any] {
|
|
@@ -67,8 +77,9 @@ class HmsDecoder: NSObject {
|
|
|
67
77
|
let source: String = hmsTrack.source
|
|
68
78
|
let trackDescription: String = hmsTrack.trackDescription
|
|
69
79
|
let isMute: Bool = hmsTrack.isMute()
|
|
80
|
+
let kind: String = HmsHelper.getHmsTrackType(hmsTrack.kind) ?? ""
|
|
70
81
|
|
|
71
|
-
return ["trackId": trackId, "source": source, "trackDescription": trackDescription, "isMute": isMute]
|
|
82
|
+
return ["trackId": trackId, "source": source, "trackDescription": trackDescription, "isMute": isMute, "type": kind, "kind": kind]
|
|
72
83
|
}
|
|
73
84
|
|
|
74
85
|
static func getHmsVideoTrack (_ hmsVideoTrack: HMSVideoTrack?) -> [String: Any] {
|
|
@@ -80,8 +91,9 @@ class HmsDecoder: NSObject {
|
|
|
80
91
|
let trackDescription = hmsTrack.trackDescription
|
|
81
92
|
let isMute = hmsTrack.isMute()
|
|
82
93
|
let isDegraded = hmsTrack.isDegraded()
|
|
94
|
+
let kind: String = HmsHelper.getHmsTrackType(hmsTrack.kind) ?? ""
|
|
83
95
|
|
|
84
|
-
return ["trackId": trackId, "source": source, "trackDescription": trackDescription, "isMute": isMute, "isDegraded": isDegraded]
|
|
96
|
+
return ["trackId": trackId, "source": source, "trackDescription": trackDescription, "isMute": isMute, "isDegraded": isDegraded, "type": kind, "kind": kind]
|
|
85
97
|
}
|
|
86
98
|
|
|
87
99
|
static func getHmsLocalPeer(_ hmsLocalPeer: HMSLocalPeer?) -> [String: Any] {
|
|
@@ -93,6 +105,7 @@ class HmsDecoder: NSObject {
|
|
|
93
105
|
let isLocal = peer.isLocal
|
|
94
106
|
let customerUserID = peer.customerUserID ?? ""
|
|
95
107
|
let customerDescription = peer.metadata ?? ""
|
|
108
|
+
let metadata = peer.metadata ?? ""
|
|
96
109
|
let audioTrack = getHmsAudioTrack(peer.audioTrack)
|
|
97
110
|
let videoTrack = getHmsVideoTrack(peer.videoTrack)
|
|
98
111
|
let role = getHmsRole(peer.role)
|
|
@@ -107,15 +120,17 @@ class HmsDecoder: NSObject {
|
|
|
107
120
|
|
|
108
121
|
var localAudioTrackData = [String: Any]()
|
|
109
122
|
if let localAudio = localAudioTrack {
|
|
110
|
-
|
|
123
|
+
let type = HmsHelper.getHmsTrackType(localAudio.kind) ?? ""
|
|
124
|
+
localAudioTrackData = ["trackId": localAudio.trackId, "source": localAudio.source, "trackDescription": localAudio.trackDescription, "settings": getHmsAudioTrackSettings(localAudio.settings), "isMute": localAudioTrack?.isMute() ?? false, "type": type, "kind": type]
|
|
111
125
|
}
|
|
112
126
|
|
|
113
127
|
var localVideoTrackData = [String: Any]()
|
|
114
128
|
if let localVideo = localVideoTrack {
|
|
115
|
-
|
|
129
|
+
let type = HmsHelper.getHmsTrackType(localVideo.kind) ?? ""
|
|
130
|
+
localVideoTrackData = ["trackId": localVideo.trackId, "source": localVideo.source, "trackDescription": localVideo.trackDescription, "settings": getHmsVideoTrackSettings(localVideo.settings), "isMute":localAudioTrack?.isMute() ?? false, "type": type, "kind": type]
|
|
116
131
|
}
|
|
117
132
|
|
|
118
|
-
return ["peerID": peerID, "name": name, "isLocal": isLocal, "customerUserID": customerUserID, "customerDescription": customerDescription, "audioTrack": audioTrack, "videoTrack": videoTrack, "auxiliaryTracks": auxiliaryTracks, "localAudioTrackData": localAudioTrackData, "localVideoTrackData": localVideoTrackData, "role": role]
|
|
133
|
+
return ["peerID": peerID, "name": name, "isLocal": isLocal, "customerUserID": customerUserID, "customerDescription": customerDescription, "metadata": metadata, "audioTrack": audioTrack, "videoTrack": videoTrack, "auxiliaryTracks": auxiliaryTracks, "localAudioTrackData": localAudioTrackData, "localVideoTrackData": localVideoTrackData, "role": role]
|
|
119
134
|
}
|
|
120
135
|
|
|
121
136
|
static func getHmsAudioTrackSettings(_ hmsAudioTrackSettings: HMSAudioTrackSettings?) -> [String: Any] {
|
|
@@ -132,11 +147,11 @@ class HmsDecoder: NSObject {
|
|
|
132
147
|
|
|
133
148
|
guard let settings = hmsVideoTrackSettings else { return [:] }
|
|
134
149
|
|
|
135
|
-
let codec = settings.codec
|
|
136
|
-
let resolution = settings.resolution
|
|
150
|
+
let codec = getHmsVideoTrackCodec(settings.codec)
|
|
151
|
+
let resolution = getHmsVideoResolution(settings.resolution)
|
|
137
152
|
let maxBitrate = settings.maxBitrate
|
|
138
153
|
let maxFrameRate = settings.maxFrameRate
|
|
139
|
-
let cameraFacing = settings.cameraFacing
|
|
154
|
+
let cameraFacing = getHmsVideoTrackCameraFacing(settings.cameraFacing)
|
|
140
155
|
let trackDescription = settings.trackDescription ?? ""
|
|
141
156
|
|
|
142
157
|
var simulcastSettingsData = [[String: Any]]()
|
|
@@ -153,6 +168,34 @@ class HmsDecoder: NSObject {
|
|
|
153
168
|
return ["codec": codec, "resolution": resolution, "maxBitrate": maxBitrate, "maxFrameRate": maxFrameRate, "cameraFacing": cameraFacing, "trackDescription": trackDescription, "simulcastSettings": simulcastSettingsData]
|
|
154
169
|
}
|
|
155
170
|
|
|
171
|
+
static func getHmsVideoTrackCodec(_ codec : HMSCodec) -> String {
|
|
172
|
+
switch(codec) {
|
|
173
|
+
case HMSCodec.VP8:
|
|
174
|
+
return "VP8"
|
|
175
|
+
case HMSCodec.H264:
|
|
176
|
+
return "H264"
|
|
177
|
+
default:
|
|
178
|
+
return "H264"
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
static func getHmsVideoTrackCameraFacing(_ cameraFacing : HMSCameraFacing) -> String {
|
|
183
|
+
switch(cameraFacing) {
|
|
184
|
+
case HMSCameraFacing.front:
|
|
185
|
+
return "FRONT"
|
|
186
|
+
case HMSCameraFacing.back:
|
|
187
|
+
return "BACK"
|
|
188
|
+
default:
|
|
189
|
+
return "FRONT"
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
static func getHmsVideoResolution(_ hmsVideoResolution: HMSVideoResolution?) -> [String: Any] {
|
|
194
|
+
guard let resolution = hmsVideoResolution else { return [:] }
|
|
195
|
+
|
|
196
|
+
return ["width": resolution.width, "height": resolution.height]
|
|
197
|
+
}
|
|
198
|
+
|
|
156
199
|
static func getHmsRemotePeers (_ remotePeers: [HMSRemotePeer]?) -> [[String: Any]] {
|
|
157
200
|
guard let remotePeers = remotePeers else { return [[:]] }
|
|
158
201
|
|
|
@@ -172,6 +215,7 @@ class HmsDecoder: NSObject {
|
|
|
172
215
|
let isLocal = hmsRemotePeer.isLocal
|
|
173
216
|
let customerUserID = hmsRemotePeer.customerUserID ?? ""
|
|
174
217
|
let customerDescription = hmsRemotePeer.metadata ?? ""
|
|
218
|
+
let metadata = hmsRemotePeer.metadata ?? ""
|
|
175
219
|
let audioTrack = getHmsAudioTrack(hmsRemotePeer.audioTrack)
|
|
176
220
|
let videoTrack = getHmsVideoTrack(hmsRemotePeer.videoTrack)
|
|
177
221
|
let role = getHmsRole(hmsRemotePeer.role)
|
|
@@ -187,15 +231,17 @@ class HmsDecoder: NSObject {
|
|
|
187
231
|
|
|
188
232
|
var remoteAudioTrackData = [String: Any]()
|
|
189
233
|
if let remoteAudio = remoteAudioTrack {
|
|
190
|
-
|
|
234
|
+
let type = HmsHelper.getHmsTrackType(remoteAudio.kind) ?? ""
|
|
235
|
+
remoteAudioTrackData = ["trackId": remoteAudio.trackId, "source": remoteAudio.source, "trackDescription": remoteAudio.trackDescription, "playbackAllowed": remoteAudio.isPlaybackAllowed(), "isMute": remoteAudio.isMute(), "type": type, "kind": type]
|
|
191
236
|
}
|
|
192
237
|
|
|
193
238
|
var remoteVideoTrackData = [String: Any]()
|
|
194
239
|
if let remoteVideo = remoteVideoTrack {
|
|
195
|
-
|
|
240
|
+
let type = HmsHelper.getHmsTrackType(remoteVideo.kind) ?? ""
|
|
241
|
+
remoteVideoTrackData = ["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]
|
|
196
242
|
}
|
|
197
243
|
|
|
198
|
-
return ["peerID": peerID, "name": name, "isLocal": isLocal, "customerUserID": customerUserID, "customerDescription": customerDescription, "audioTrack": audioTrack, "videoTrack": videoTrack, "auxiliaryTracks": auxiliaryTracks, "remoteAudioTrackData": remoteAudioTrackData, "remoteVideoTrackData": remoteVideoTrackData, "role": role]
|
|
244
|
+
return ["peerID": peerID, "name": name, "isLocal": isLocal, "customerUserID": customerUserID, "customerDescription": customerDescription, "metadata": metadata, "audioTrack": audioTrack, "videoTrack": videoTrack, "auxiliaryTracks": auxiliaryTracks, "remoteAudioTrackData": remoteAudioTrackData, "remoteVideoTrackData": remoteVideoTrackData, "role": role]
|
|
199
245
|
}
|
|
200
246
|
|
|
201
247
|
static func getPreviewTracks(_ tracks: [HMSTrack]) -> [String: Any] {
|
|
@@ -204,12 +250,14 @@ class HmsDecoder: NSObject {
|
|
|
204
250
|
|
|
205
251
|
for track in tracks {
|
|
206
252
|
if let localVideo = track as? HMSLocalVideoTrack {
|
|
207
|
-
let
|
|
253
|
+
let type = HmsHelper.getHmsTrackType(localVideo.kind) ?? ""
|
|
254
|
+
let localVideoTrackData: [String : Any] = ["trackId": localVideo.trackId, "source": localVideo.source, "trackDescription": localVideo.trackDescription, "settings": getHmsVideoTrackSettings(localVideo.settings), "isMute": localVideo.isMute(), "kind": type, "type": type]
|
|
208
255
|
hmsTracks["videoTrack"] = localVideoTrackData
|
|
209
256
|
}
|
|
210
257
|
|
|
211
258
|
if let localAudio = track as? HMSLocalAudioTrack {
|
|
212
|
-
let
|
|
259
|
+
let type = HmsHelper.getHmsTrackType(localAudio.kind) ?? ""
|
|
260
|
+
let localAudioTrackData: [String : Any] = ["trackId": localAudio.trackId, "source": localAudio.source, "trackDescription": localAudio.trackDescription, "settings": getHmsAudioTrackSettings(localAudio.settings), "isMute": localAudio.isMute(), "kind": type, "type": type]
|
|
213
261
|
hmsTracks["audioTrack"] = localAudioTrackData
|
|
214
262
|
}
|
|
215
263
|
}
|
|
@@ -267,7 +315,12 @@ class HmsDecoder: NSObject {
|
|
|
267
315
|
let screen = getHmsVideoSettings(publishSettings.screen)
|
|
268
316
|
let videoSimulcastLayers = getHmsSimulcastLayers(publishSettings.videoSimulcastLayers)
|
|
269
317
|
let screenSimulcastLayers = getHmsSimulcastLayers(publishSettings.screenSimulcastLayers)
|
|
270
|
-
|
|
318
|
+
var allowed = publishSettings.allowed ?? []
|
|
319
|
+
if((publishSettings.allowed) != nil) {
|
|
320
|
+
allowed = getWriteableArray(publishSettings.allowed)
|
|
321
|
+
}else {
|
|
322
|
+
allowed = []
|
|
323
|
+
}
|
|
271
324
|
|
|
272
325
|
return ["audio": audio,
|
|
273
326
|
"video": video,
|
|
@@ -276,6 +329,16 @@ class HmsDecoder: NSObject {
|
|
|
276
329
|
"screenSimulcastLayers": screenSimulcastLayers,
|
|
277
330
|
"allowed": allowed]
|
|
278
331
|
}
|
|
332
|
+
|
|
333
|
+
static func getWriteableArray(_ array: [String]?) -> [String] {
|
|
334
|
+
var decodedArray = [String]()
|
|
335
|
+
if let extractedArray = array {
|
|
336
|
+
for value in extractedArray {
|
|
337
|
+
decodedArray.append(value)
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
return decodedArray
|
|
341
|
+
}
|
|
279
342
|
|
|
280
343
|
static func getHmsAudioSettings(_ audioSettings: HMSAudioSettings) -> [String: Any] {
|
|
281
344
|
let bitRate = audioSettings.bitRate
|
|
@@ -347,14 +410,14 @@ class HmsDecoder: NSObject {
|
|
|
347
410
|
return [:]
|
|
348
411
|
}
|
|
349
412
|
|
|
350
|
-
static func getHmsChangeTrackStateRequest(_ changeTrackStateRequest: HMSChangeTrackStateRequest) -> [String: Any] {
|
|
413
|
+
static func getHmsChangeTrackStateRequest(_ changeTrackStateRequest: HMSChangeTrackStateRequest, _ id: String) -> [String: Any] {
|
|
351
414
|
var requestedBy: [String: Any]?
|
|
352
415
|
if let peer = changeTrackStateRequest.requestedBy {
|
|
353
416
|
requestedBy = getHmsPeer(peer)
|
|
354
417
|
}
|
|
355
418
|
let trackType = changeTrackStateRequest.track.kind == .video ? "video" : "audio"
|
|
356
419
|
|
|
357
|
-
var request = ["trackType": trackType] as [String: Any]
|
|
420
|
+
var request = ["trackType": trackType, "id": id, "mute": changeTrackStateRequest.mute] as [String: Any]
|
|
358
421
|
if let requestedBy = requestedBy {
|
|
359
422
|
request["requestedBy"] = requestedBy
|
|
360
423
|
}
|
|
@@ -362,16 +425,53 @@ class HmsDecoder: NSObject {
|
|
|
362
425
|
return request
|
|
363
426
|
}
|
|
364
427
|
|
|
365
|
-
static func getError(_
|
|
366
|
-
let
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
428
|
+
static func getError(_ errorObj: HMSError?) -> [String: Any] {
|
|
429
|
+
if let error = errorObj {
|
|
430
|
+
let code = error.code
|
|
431
|
+
let description = error.description
|
|
432
|
+
let localizedDescription = error.localizedDescription
|
|
433
|
+
let debugDescription = error.debugDescription
|
|
434
|
+
let message = error.message
|
|
435
|
+
let name = error.id
|
|
436
|
+
let id = error.id
|
|
437
|
+
let action = error.action
|
|
438
|
+
|
|
439
|
+
return ["code": code, "description": description, "localizedDescription":localizedDescription, "debugDescription":debugDescription, "message":message, "name":name, "action":action, "id": id]
|
|
440
|
+
} else {
|
|
441
|
+
return [:]
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
|
|
445
|
+
static func getHMSBrowserRecordingState(_ data: HMSBrowserRecordingState?) -> [String: Any] {
|
|
446
|
+
if let recordingState = data {
|
|
447
|
+
let running = recordingState.running
|
|
448
|
+
let error = HmsDecoder.getError(recordingState.error)
|
|
449
|
+
|
|
450
|
+
return ["running": running, "error": error]
|
|
451
|
+
} else {
|
|
452
|
+
return [:]
|
|
453
|
+
}
|
|
454
|
+
}
|
|
455
|
+
|
|
456
|
+
static func getHMSRtmpStreamingState(_ data: HMSRTMPStreamingState?) -> [String: Any] {
|
|
457
|
+
if let streamingState = data {
|
|
458
|
+
let running = streamingState.running
|
|
459
|
+
let error = HmsDecoder.getError(streamingState.error)
|
|
460
|
+
|
|
461
|
+
return ["running": running, "error": error]
|
|
462
|
+
} else {
|
|
463
|
+
return [:]
|
|
464
|
+
}
|
|
465
|
+
}
|
|
466
|
+
|
|
467
|
+
static func getHMSServerRecordingState(_ data: HMSServerRecordingState?) -> [String: Any] {
|
|
468
|
+
if let recordingState = data {
|
|
469
|
+
let running = recordingState.running
|
|
470
|
+
let error = HmsDecoder.getError(recordingState.error)
|
|
471
|
+
|
|
472
|
+
return ["running": running, "error": error]
|
|
473
|
+
} else {
|
|
474
|
+
return [:]
|
|
475
|
+
}
|
|
376
476
|
}
|
|
377
477
|
}
|
package/ios/HmsHelper.swift
CHANGED
|
@@ -3,7 +3,17 @@ import Foundation
|
|
|
3
3
|
|
|
4
4
|
class HmsHelper: NSObject {
|
|
5
5
|
|
|
6
|
-
static func getPeerFromPeerId(_ peerID: String?, remotePeers: [HMSRemotePeer]?) -> HMSPeer? {
|
|
6
|
+
static func getPeerFromPeerId(_ peerID: String?, remotePeers: [HMSRemotePeer]?, localPeer: HMSLocalPeer?) -> HMSPeer? {
|
|
7
|
+
|
|
8
|
+
guard let peerID = peerID, let peers = remotePeers else { return nil }
|
|
9
|
+
if(peerID == localPeer?.peerID) {
|
|
10
|
+
return localPeer
|
|
11
|
+
}
|
|
12
|
+
return peers.first { $0.peerID == peerID }
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
static func getRemotePeerFromPeerId(_ peerID: String?, remotePeers: [HMSRemotePeer]?) -> HMSPeer? {
|
|
7
17
|
|
|
8
18
|
guard let peerID = peerID, let peers = remotePeers else { return nil }
|
|
9
19
|
|
|
@@ -53,6 +63,22 @@ class HmsHelper: NSObject {
|
|
|
53
63
|
return nil
|
|
54
64
|
}
|
|
55
65
|
|
|
66
|
+
static func getRemoteAudioAuxiliaryTrackFromTrackId(_ trackID: String?, _ remotePeers: [HMSRemotePeer]?) -> HMSRemoteAudioTrack? {
|
|
67
|
+
for peer in remotePeers ?? [] {
|
|
68
|
+
if peer.audioTrack?.trackId == trackID {
|
|
69
|
+
return peer.audioTrack as? HMSRemoteAudioTrack
|
|
70
|
+
}
|
|
71
|
+
let auxTracks = peer.auxiliaryTracks
|
|
72
|
+
|
|
73
|
+
for track in auxTracks ?? [] {
|
|
74
|
+
if (track.kind == HMSTrackKind.audio && track.trackId == trackID) {
|
|
75
|
+
return track as? HMSRemoteAudioTrack
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return nil
|
|
80
|
+
}
|
|
81
|
+
|
|
56
82
|
static func getRemoteVideoTrackFromTrackId(_ trackID: String?, _ remotePeers: [HMSRemotePeer]?) -> HMSRemoteVideoTrack? {
|
|
57
83
|
for peer in remotePeers ?? [] {
|
|
58
84
|
if peer.videoTrack?.trackId == trackID {
|
|
@@ -98,4 +124,80 @@ class HmsHelper: NSObject {
|
|
|
98
124
|
}
|
|
99
125
|
return hms
|
|
100
126
|
}
|
|
127
|
+
|
|
128
|
+
static func getLocalVideoSettings(_ settings: NSDictionary?) -> HMSVideoTrackSettings? {
|
|
129
|
+
guard let data = settings,
|
|
130
|
+
let codec = data.value(forKey: "codec") as? String,
|
|
131
|
+
let resolution = data.value(forKey: "resolution") as? [String : Double]?,
|
|
132
|
+
let maxBitrate = data.value(forKey: "maxBitrate") as? Int,
|
|
133
|
+
let maxFrameRate = data.value(forKey: "maxFrameRate") as? Int,
|
|
134
|
+
let cameraFacing = data.value(forKey: "cameraFacing") as? String,
|
|
135
|
+
let trackDescription = data.value(forKey: "trackDescription") as? String?,
|
|
136
|
+
let resolutionObj = HmsHelper.getVideoResolution(resolution ?? [:])
|
|
137
|
+
else {
|
|
138
|
+
return nil
|
|
139
|
+
}
|
|
140
|
+
let codecEncoded = HmsHelper.getVideoCodec(codec)
|
|
141
|
+
let cameraFacingEncoded = HmsHelper.getCameraFacing(cameraFacing)
|
|
142
|
+
let hmsTrackSettings = HMSVideoTrackSettings(codec: codecEncoded, resolution: resolutionObj, maxBitrate: maxBitrate, maxFrameRate: maxFrameRate, cameraFacing: cameraFacingEncoded, trackDescription: trackDescription)
|
|
143
|
+
return hmsTrackSettings
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
static func getLocalAudioSettings(_ settings: NSDictionary?) -> HMSAudioTrackSettings? {
|
|
147
|
+
guard let data = settings,
|
|
148
|
+
let maxBitrate = data.value(forKey: "maxBitrate") as? Int,
|
|
149
|
+
let trackDescription = data.value(forKey: "trackDescription") as? String?
|
|
150
|
+
else {
|
|
151
|
+
return nil
|
|
152
|
+
}
|
|
153
|
+
let hmsTrackSettings = HMSAudioTrackSettings(maxBitrate: maxBitrate, trackDescription: trackDescription)
|
|
154
|
+
return hmsTrackSettings
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
static func getVideoResolution(_ data: [String : Double]) -> HMSVideoResolution? {
|
|
158
|
+
guard let width = data["width"],
|
|
159
|
+
let height = data["height"]
|
|
160
|
+
else {
|
|
161
|
+
return nil
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
return HMSVideoResolution.init(width: width, height: height)
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
static func getVideoCodec(_ codecString: String?) -> HMSCodec {
|
|
168
|
+
switch codecString {
|
|
169
|
+
case "H264":
|
|
170
|
+
return HMSCodec.H264
|
|
171
|
+
case "VP8":
|
|
172
|
+
return HMSCodec.VP8
|
|
173
|
+
default:
|
|
174
|
+
return HMSCodec.H264
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
static func getCameraFacing(_ cameraFacing: String) -> HMSCameraFacing {
|
|
179
|
+
switch cameraFacing {
|
|
180
|
+
case "FRONT":
|
|
181
|
+
return HMSCameraFacing.front
|
|
182
|
+
case "BACK":
|
|
183
|
+
return HMSCameraFacing.back
|
|
184
|
+
default:
|
|
185
|
+
return HMSCameraFacing.front
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
static func getRtmpUrls(_ strings: [String]?) -> [URL]? {
|
|
190
|
+
if let extractedStrings = strings {
|
|
191
|
+
var arr: [URL] = []
|
|
192
|
+
for urlString in extractedStrings {
|
|
193
|
+
let urlInstance = URL(string: urlString)
|
|
194
|
+
if let urlExtracted = urlInstance {
|
|
195
|
+
arr.append(urlExtracted)
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
return arr
|
|
199
|
+
} else {
|
|
200
|
+
return nil
|
|
201
|
+
}
|
|
202
|
+
}
|
|
101
203
|
}
|
package/ios/HmsManager.m
CHANGED
|
@@ -7,21 +7,25 @@ RCT_EXTERN_METHOD(join: (NSDictionary) credentials)
|
|
|
7
7
|
RCT_EXTERN_METHOD(preview: (NSDictionary) credentials)
|
|
8
8
|
RCT_EXTERN_METHOD(setLocalMute: (NSDictionary) isMute)
|
|
9
9
|
RCT_EXTERN_METHOD(setLocalVideoMute: (NSDictionary) isMute)
|
|
10
|
-
RCT_EXTERN_METHOD(sendBroadcastMessage: (NSDictionary) data)
|
|
11
|
-
RCT_EXTERN_METHOD(sendGroupMessage: (NSDictionary) data)
|
|
12
|
-
RCT_EXTERN_METHOD(sendDirectMessage: (NSDictionary) data)
|
|
10
|
+
RCT_EXTERN_METHOD(sendBroadcastMessage: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
|
|
11
|
+
RCT_EXTERN_METHOD(sendGroupMessage: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
|
|
12
|
+
RCT_EXTERN_METHOD(sendDirectMessage: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
|
|
13
13
|
RCT_EXTERN_METHOD(setPlaybackAllowed: (NSDictionary) data)
|
|
14
|
-
RCT_EXTERN_METHOD(removePeer: (NSDictionary) data)
|
|
15
|
-
RCT_EXTERN_METHOD(endRoom: (NSDictionary) data)
|
|
16
|
-
RCT_EXTERN_METHOD(changeRole: (NSDictionary) data)
|
|
17
|
-
RCT_EXTERN_METHOD(changeTrackState: (NSDictionary) data)
|
|
18
|
-
RCT_EXTERN_METHOD(changeTrackStateRoles: (NSDictionary) data)
|
|
14
|
+
RCT_EXTERN_METHOD(removePeer: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
|
|
15
|
+
RCT_EXTERN_METHOD(endRoom: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
|
|
16
|
+
RCT_EXTERN_METHOD(changeRole: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
|
|
17
|
+
RCT_EXTERN_METHOD(changeTrackState: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
|
|
18
|
+
RCT_EXTERN_METHOD(changeTrackStateRoles: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
|
|
19
19
|
RCT_EXTERN_METHOD(acceptRoleChange: (NSDictionary) data)
|
|
20
20
|
RCT_EXTERN_METHOD(isMute: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
|
|
21
21
|
RCT_EXTERN_METHOD(getRoom: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
|
|
22
22
|
RCT_EXTERN_METHOD(switchCamera: (NSDictionary) data)
|
|
23
|
-
RCT_EXTERN_METHOD(
|
|
23
|
+
RCT_EXTERN_METHOD(setVolume: (NSDictionary) data)
|
|
24
|
+
RCT_EXTERN_METHOD(build : (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
|
|
24
25
|
RCT_EXTERN_METHOD(leave: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
|
|
25
26
|
RCT_EXTERN_METHOD(muteAllPeersAudio: (NSDictionary) mute)
|
|
26
27
|
RCT_EXTERN_METHOD(isPlaybackAllowed: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
|
|
28
|
+
RCT_EXTERN_METHOD(changeMetadata: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
|
|
29
|
+
RCT_EXTERN_METHOD(startRTMPOrRecording: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
|
|
30
|
+
RCT_EXTERN_METHOD(stopRtmpAndRecording: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
|
|
27
31
|
@end
|