@100mslive/react-native-hms 1.10.7 → 1.10.9
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 +6 -5
- package/android/src/main/java/com/reactnativehmssdk/HMSManager.kt +47 -8
- package/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt +34 -3
- package/android/src/main/java/com/reactnativehmssdk/PipActionReceiver.kt +3 -1
- package/ios/HMSConstants.swift +1 -0
- package/ios/HMSManager.m +39 -0
- package/ios/HMSManager.swift +116 -1
- package/ios/HMSRNSDK.swift +276 -2
- package/ios/PIPMode/HMSPipModel.swift +18 -0
- package/ios/PIPMode/HMSPipView.swift +36 -0
- package/ios/PIPMode/HMSSampleBufferSwiftUIView.swift +45 -0
- package/lib/commonjs/classes/HMSAudioDevice.js +9 -0
- package/lib/commonjs/classes/HMSAudioDevice.js.map +1 -1
- package/lib/commonjs/classes/HMSAudioMixingMode.js +11 -0
- package/lib/commonjs/classes/HMSAudioMixingMode.js.map +1 -1
- package/lib/commonjs/classes/HMSAudioTrack.js +9 -0
- package/lib/commonjs/classes/HMSAudioTrack.js.map +1 -1
- package/lib/commonjs/classes/HMSCameraFacing.js +9 -0
- package/lib/commonjs/classes/HMSCameraFacing.js.map +1 -1
- package/lib/commonjs/classes/HMSConfig.js +27 -0
- package/lib/commonjs/classes/HMSConfig.js.map +1 -1
- package/lib/commonjs/classes/HMSException.js +18 -0
- package/lib/commonjs/classes/HMSException.js.map +1 -1
- package/lib/commonjs/classes/HMSHLSTimedMetadata.js.map +1 -1
- package/lib/commonjs/classes/HMSIOSAudioMode.js +15 -0
- package/lib/commonjs/classes/HMSIOSAudioMode.js.map +1 -1
- package/lib/commonjs/classes/HMSLogAlarmManager.js +12 -0
- package/lib/commonjs/classes/HMSLogAlarmManager.js.map +1 -1
- package/lib/commonjs/classes/HMSLogLevel.js +12 -0
- package/lib/commonjs/classes/HMSLogLevel.js.map +1 -1
- package/lib/commonjs/classes/HMSLogSettings.js +14 -0
- package/lib/commonjs/classes/HMSLogSettings.js.map +1 -1
- package/lib/commonjs/classes/HMSNetworkQuality.js +11 -0
- package/lib/commonjs/classes/HMSNetworkQuality.js.map +1 -1
- package/lib/commonjs/classes/HMSNoiseCancellationPlugin.js +40 -10
- package/lib/commonjs/classes/HMSNoiseCancellationPlugin.js.map +1 -1
- package/lib/commonjs/classes/HMSPIPConfig.js +4 -0
- package/lib/commonjs/classes/HMSPIPConfig.js.map +1 -1
- package/lib/commonjs/classes/HMSPIPListenerActions.js +9 -0
- package/lib/commonjs/classes/HMSPIPListenerActions.js.map +1 -1
- package/lib/commonjs/classes/HMSPeer.js +148 -0
- package/lib/commonjs/classes/HMSPeer.js.map +1 -1
- package/lib/commonjs/classes/HMSPeerType.js +12 -1
- package/lib/commonjs/classes/HMSPeerType.js.map +1 -1
- package/lib/commonjs/classes/HMSRTMPConfig.js +14 -0
- package/lib/commonjs/classes/HMSRTMPConfig.js.map +1 -1
- package/lib/commonjs/classes/HMSRole.js +17 -0
- package/lib/commonjs/classes/HMSRole.js.map +1 -1
- package/lib/commonjs/classes/HMSRtmpVideoResolution.js +13 -0
- package/lib/commonjs/classes/HMSRtmpVideoResolution.js.map +1 -1
- package/lib/commonjs/classes/HMSSDK.js +1153 -233
- package/lib/commonjs/classes/HMSSDK.js.map +1 -1
- package/lib/commonjs/classes/HMSSessionStore.js +14 -15
- package/lib/commonjs/classes/HMSSessionStore.js.map +1 -1
- package/lib/commonjs/classes/HMSTrack.js +13 -0
- package/lib/commonjs/classes/HMSTrack.js.map +1 -1
- package/lib/commonjs/classes/HMSTrackSettings.js +10 -0
- package/lib/commonjs/classes/HMSTrackSettings.js.map +1 -1
- package/lib/commonjs/classes/HMSTrackSettingsInitState.js +9 -0
- package/lib/commonjs/classes/HMSTrackSettingsInitState.js.map +1 -1
- package/lib/commonjs/classes/HMSTrackSource.js +10 -0
- package/lib/commonjs/classes/HMSTrackSource.js.map +1 -1
- package/lib/commonjs/classes/HMSTrackType.js +7 -0
- package/lib/commonjs/classes/HMSTrackType.js.map +1 -1
- package/lib/commonjs/classes/HMSUpdateListenerActions.js +42 -3
- package/lib/commonjs/classes/HMSUpdateListenerActions.js.map +1 -1
- package/lib/commonjs/classes/HMSVideoTrack.js +17 -0
- package/lib/commonjs/classes/HMSVideoTrack.js.map +1 -1
- package/lib/commonjs/classes/HMSVideoTrackSettings.js +12 -2
- package/lib/commonjs/classes/HMSVideoTrackSettings.js.map +1 -1
- package/lib/commonjs/classes/HmsView.js +42 -0
- package/lib/commonjs/classes/HmsView.js.map +1 -1
- package/lib/module/classes/HMSAudioDevice.js +9 -0
- package/lib/module/classes/HMSAudioDevice.js.map +1 -1
- package/lib/module/classes/HMSAudioMixingMode.js +11 -0
- package/lib/module/classes/HMSAudioMixingMode.js.map +1 -1
- package/lib/module/classes/HMSAudioTrack.js +9 -0
- package/lib/module/classes/HMSAudioTrack.js.map +1 -1
- package/lib/module/classes/HMSCameraFacing.js +9 -0
- package/lib/module/classes/HMSCameraFacing.js.map +1 -1
- package/lib/module/classes/HMSConfig.js +27 -0
- package/lib/module/classes/HMSConfig.js.map +1 -1
- package/lib/module/classes/HMSException.js +18 -0
- package/lib/module/classes/HMSException.js.map +1 -1
- package/lib/module/classes/HMSHLSTimedMetadata.js.map +1 -1
- package/lib/module/classes/HMSIOSAudioMode.js +15 -0
- package/lib/module/classes/HMSIOSAudioMode.js.map +1 -1
- package/lib/module/classes/HMSLogAlarmManager.js +12 -0
- package/lib/module/classes/HMSLogAlarmManager.js.map +1 -1
- package/lib/module/classes/HMSLogLevel.js +12 -0
- package/lib/module/classes/HMSLogLevel.js.map +1 -1
- package/lib/module/classes/HMSLogSettings.js +14 -0
- package/lib/module/classes/HMSLogSettings.js.map +1 -1
- package/lib/module/classes/HMSNetworkQuality.js +11 -0
- package/lib/module/classes/HMSNetworkQuality.js.map +1 -1
- package/lib/module/classes/HMSNoiseCancellationPlugin.js +40 -10
- package/lib/module/classes/HMSNoiseCancellationPlugin.js.map +1 -1
- package/lib/module/classes/HMSPIPConfig.js +1 -1
- package/lib/module/classes/HMSPIPConfig.js.map +1 -1
- package/lib/module/classes/HMSPIPListenerActions.js +9 -0
- package/lib/module/classes/HMSPIPListenerActions.js.map +1 -1
- package/lib/module/classes/HMSPeer.js +149 -0
- package/lib/module/classes/HMSPeer.js.map +1 -1
- package/lib/module/classes/HMSPeerType.js +12 -1
- package/lib/module/classes/HMSPeerType.js.map +1 -1
- package/lib/module/classes/HMSRTMPConfig.js +14 -0
- package/lib/module/classes/HMSRTMPConfig.js.map +1 -1
- package/lib/module/classes/HMSRole.js +17 -0
- package/lib/module/classes/HMSRole.js.map +1 -1
- package/lib/module/classes/HMSRtmpVideoResolution.js +13 -0
- package/lib/module/classes/HMSRtmpVideoResolution.js.map +1 -1
- package/lib/module/classes/HMSSDK.js +1153 -233
- package/lib/module/classes/HMSSDK.js.map +1 -1
- package/lib/module/classes/HMSSessionStore.js +14 -15
- package/lib/module/classes/HMSSessionStore.js.map +1 -1
- package/lib/module/classes/HMSTrack.js +13 -0
- package/lib/module/classes/HMSTrack.js.map +1 -1
- package/lib/module/classes/HMSTrackSettings.js +10 -0
- package/lib/module/classes/HMSTrackSettings.js.map +1 -1
- package/lib/module/classes/HMSTrackSettingsInitState.js +9 -0
- package/lib/module/classes/HMSTrackSettingsInitState.js.map +1 -1
- package/lib/module/classes/HMSTrackSource.js +10 -0
- package/lib/module/classes/HMSTrackSource.js.map +1 -1
- package/lib/module/classes/HMSTrackType.js +7 -0
- package/lib/module/classes/HMSTrackType.js.map +1 -1
- package/lib/module/classes/HMSUpdateListenerActions.js +42 -3
- package/lib/module/classes/HMSUpdateListenerActions.js.map +1 -1
- package/lib/module/classes/HMSVideoTrack.js +17 -0
- package/lib/module/classes/HMSVideoTrack.js.map +1 -1
- package/lib/module/classes/HMSVideoTrackSettings.js +12 -2
- package/lib/module/classes/HMSVideoTrackSettings.js.map +1 -1
- package/lib/module/classes/HmsView.js +43 -0
- package/lib/module/classes/HmsView.js.map +1 -1
- package/lib/typescript/classes/HMSAudioDevice.d.ts +14 -0
- package/lib/typescript/classes/HMSAudioMixingMode.d.ts +11 -0
- package/lib/typescript/classes/HMSAudioTrack.d.ts +9 -0
- package/lib/typescript/classes/HMSCameraFacing.d.ts +11 -0
- package/lib/typescript/classes/HMSConfig.d.ts +27 -0
- package/lib/typescript/classes/HMSException.d.ts +18 -0
- package/lib/typescript/classes/HMSHLSTimedMetadata.d.ts +12 -0
- package/lib/typescript/classes/HMSIOSAudioMode.d.ts +15 -0
- package/lib/typescript/classes/HMSLogAlarmManager.d.ts +12 -0
- package/lib/typescript/classes/HMSLogLevel.d.ts +12 -0
- package/lib/typescript/classes/HMSLogSettings.d.ts +14 -0
- package/lib/typescript/classes/HMSNetworkQuality.d.ts +11 -0
- package/lib/typescript/classes/HMSNoiseCancellationPlugin.d.ts +36 -6
- package/lib/typescript/classes/HMSPIPConfig.d.ts +40 -0
- package/lib/typescript/classes/HMSPIPListenerActions.d.ts +17 -0
- package/lib/typescript/classes/HMSPeer.d.ts +137 -0
- package/lib/typescript/classes/HMSPeerType.d.ts +11 -0
- package/lib/typescript/classes/HMSRTMPConfig.d.ts +14 -0
- package/lib/typescript/classes/HMSRole.d.ts +17 -0
- package/lib/typescript/classes/HMSRtmpVideoResolution.d.ts +13 -0
- package/lib/typescript/classes/HMSSDK.d.ts +1083 -235
- package/lib/typescript/classes/HMSSessionStore.d.ts +14 -15
- package/lib/typescript/classes/HMSTrack.d.ts +13 -0
- package/lib/typescript/classes/HMSTrackSettings.d.ts +10 -0
- package/lib/typescript/classes/HMSTrackSettingsInitState.d.ts +11 -0
- package/lib/typescript/classes/HMSTrackSource.d.ts +10 -0
- package/lib/typescript/classes/HMSTrackType.d.ts +7 -0
- package/lib/typescript/classes/HMSUpdateListenerActions.d.ts +290 -4
- package/lib/typescript/classes/HMSVideoTrack.d.ts +17 -0
- package/lib/typescript/classes/HMSVideoTrackSettings.d.ts +12 -2
- package/lib/typescript/classes/HmsView.d.ts +16 -0
- package/package.json +1 -1
- package/sdk-versions.json +2 -2
- package/src/classes/HMSAudioDevice.ts +18 -0
- package/src/classes/HMSAudioMixingMode.ts +11 -0
- package/src/classes/HMSAudioTrack.ts +9 -0
- package/src/classes/HMSCameraFacing.ts +11 -0
- package/src/classes/HMSConfig.ts +27 -0
- package/src/classes/HMSException.ts +18 -0
- package/src/classes/HMSHLSTimedMetadata.ts +12 -0
- package/src/classes/HMSIOSAudioMode.ts +15 -0
- package/src/classes/HMSLogAlarmManager.ts +12 -0
- package/src/classes/HMSLogLevel.ts +12 -0
- package/src/classes/HMSLogSettings.ts +14 -0
- package/src/classes/HMSNetworkQuality.ts +11 -0
- package/src/classes/HMSNoiseCancellationPlugin.ts +41 -10
- package/src/classes/HMSPIPConfig.ts +47 -0
- package/src/classes/HMSPIPListenerActions.ts +18 -0
- package/src/classes/HMSPeer.ts +137 -0
- package/src/classes/HMSPeerType.ts +13 -2
- package/src/classes/HMSRTMPConfig.ts +14 -0
- package/src/classes/HMSRole.ts +17 -0
- package/src/classes/HMSRtmpVideoResolution.ts +13 -0
- package/src/classes/HMSSDK.tsx +1211 -269
- package/src/classes/HMSSessionStore.ts +14 -15
- package/src/classes/HMSTrack.ts +13 -0
- package/src/classes/HMSTrackSettings.ts +10 -0
- package/src/classes/HMSTrackSettingsInitState.ts +11 -0
- package/src/classes/HMSTrackSource.ts +10 -0
- package/src/classes/HMSTrackType.ts +7 -0
- package/src/classes/HMSUpdateListenerActions.ts +312 -3
- package/src/classes/HMSVideoTrack.ts +17 -0
- package/src/classes/HMSVideoTrackSettings.ts +12 -2
- package/src/classes/HmsView.tsx +39 -0
package/README.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<a href="https://100ms.live/">
|
|
2
|
-
<img src="https://raw.githubusercontent.com/100mslive/react-native-hms/main/100ms.svg" title="100ms logo" float=center height=256>
|
|
2
|
+
<img src="https://raw.githubusercontent.com/100mslive/react-native-hms/main/100ms.svg" title="100ms logo" float=center height=256 alt="100ms logo">
|
|
3
3
|
</a>
|
|
4
4
|
|
|
5
5
|
[](https://www.npmjs.com/package/@100mslive/react-native-hms)
|
|
@@ -22,10 +22,11 @@ With support for HLS and RTMP Live Streaming and Recording, Picture-in-Picture (
|
|
|
22
22
|
|
|
23
23
|
📖 Read the Complete Documentation here: https://www.100ms.live/docs/react-native/v2/foundation/basics
|
|
24
24
|
|
|
25
|
-
| Package
|
|
26
|
-
|
|
|
27
|
-
| @100mslive/react-native-room-kit
|
|
28
|
-
| @100mslive/react-native-hms
|
|
25
|
+
| Package | Version |
|
|
26
|
+
| ------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
27
|
+
| @100mslive/react-native-room-kit | [](https://www.npmjs.com/package/@100mslive/react-native-room-kit) |
|
|
28
|
+
| @100mslive/react-native-hms | [](https://www.npmjs.com/package/@100mslive/react-native-hms) |
|
|
29
|
+
| @100mslive/react-native-video-plugin | [](https://www.npmjs.com/package/@100mslive/react-native-video-plugin) |
|
|
29
30
|
|
|
30
31
|
## 🏃 Example App
|
|
31
32
|
|
|
@@ -21,6 +21,7 @@ import com.facebook.react.modules.core.DeviceEventManagerModule
|
|
|
21
21
|
import com.reactnativehmssdk.HMSManager.Companion.REACT_CLASS
|
|
22
22
|
import live.hms.video.error.HMSException
|
|
23
23
|
import live.hms.video.factories.noisecancellation.AvailabilityStatus
|
|
24
|
+
import live.hms.video.sdk.HMSActionResultListener
|
|
24
25
|
import java.util.UUID
|
|
25
26
|
|
|
26
27
|
@ReactModule(name = REACT_CLASS)
|
|
@@ -1092,7 +1093,7 @@ class HMSManager(
|
|
|
1092
1093
|
activity.setPictureInPictureParams(pipParams)
|
|
1093
1094
|
return true
|
|
1094
1095
|
} catch (e: Exception) {
|
|
1095
|
-
|
|
1096
|
+
return false
|
|
1096
1097
|
}
|
|
1097
1098
|
}
|
|
1098
1099
|
|
|
@@ -1127,7 +1128,7 @@ class HMSManager(
|
|
|
1127
1128
|
|
|
1128
1129
|
return activity.enterPictureInPictureMode(pipParams)
|
|
1129
1130
|
} catch (e: Exception) {
|
|
1130
|
-
|
|
1131
|
+
return false
|
|
1131
1132
|
}
|
|
1132
1133
|
}
|
|
1133
1134
|
|
|
@@ -1517,8 +1518,19 @@ class HMSManager(
|
|
|
1517
1518
|
)
|
|
1518
1519
|
return
|
|
1519
1520
|
}
|
|
1520
|
-
|
|
1521
|
-
|
|
1521
|
+
|
|
1522
|
+
hmsSdk.enableNoiseCancellation(
|
|
1523
|
+
true,
|
|
1524
|
+
object : HMSActionResultListener {
|
|
1525
|
+
override fun onError(error: HMSException) {
|
|
1526
|
+
promise?.reject(error.code.toString(), error.message)
|
|
1527
|
+
}
|
|
1528
|
+
|
|
1529
|
+
override fun onSuccess() {
|
|
1530
|
+
promise?.resolve(true)
|
|
1531
|
+
}
|
|
1532
|
+
},
|
|
1533
|
+
)
|
|
1522
1534
|
}
|
|
1523
1535
|
|
|
1524
1536
|
@ReactMethod
|
|
@@ -1542,8 +1554,18 @@ class HMSManager(
|
|
|
1542
1554
|
)
|
|
1543
1555
|
return
|
|
1544
1556
|
}
|
|
1545
|
-
hmsSdk.
|
|
1546
|
-
|
|
1557
|
+
hmsSdk.enableNoiseCancellation(
|
|
1558
|
+
false,
|
|
1559
|
+
object : HMSActionResultListener {
|
|
1560
|
+
override fun onError(error: HMSException) {
|
|
1561
|
+
promise?.reject(error.code.toString(), error.message)
|
|
1562
|
+
}
|
|
1563
|
+
|
|
1564
|
+
override fun onSuccess() {
|
|
1565
|
+
promise?.resolve(true)
|
|
1566
|
+
}
|
|
1567
|
+
},
|
|
1568
|
+
)
|
|
1547
1569
|
}
|
|
1548
1570
|
|
|
1549
1571
|
@ReactMethod
|
|
@@ -1567,7 +1589,7 @@ class HMSManager(
|
|
|
1567
1589
|
)
|
|
1568
1590
|
return
|
|
1569
1591
|
}
|
|
1570
|
-
val isEnabled = hmsSdk.
|
|
1592
|
+
val isEnabled = hmsSdk.isNoiseCancellationEnabled()
|
|
1571
1593
|
promise?.resolve(isEnabled)
|
|
1572
1594
|
}
|
|
1573
1595
|
|
|
@@ -1593,7 +1615,7 @@ class HMSManager(
|
|
|
1593
1615
|
return
|
|
1594
1616
|
}
|
|
1595
1617
|
|
|
1596
|
-
val availability: AvailabilityStatus = hmsSdk.
|
|
1618
|
+
val availability: AvailabilityStatus = hmsSdk.isNoiseCancellationSupported()
|
|
1597
1619
|
val isAvailable =
|
|
1598
1620
|
if (availability == AvailabilityStatus.Available) {
|
|
1599
1621
|
true
|
|
@@ -1624,6 +1646,23 @@ class HMSManager(
|
|
|
1624
1646
|
}
|
|
1625
1647
|
// endregion
|
|
1626
1648
|
|
|
1649
|
+
@ReactMethod
|
|
1650
|
+
fun setPermissionsAccepted(
|
|
1651
|
+
data: ReadableMap,
|
|
1652
|
+
promise: Promise?,
|
|
1653
|
+
) {
|
|
1654
|
+
val rnSDK =
|
|
1655
|
+
HMSHelper.getHms(data, hmsCollection) ?: run {
|
|
1656
|
+
promise?.reject(
|
|
1657
|
+
"6004",
|
|
1658
|
+
"RN HMS SDK not initialized",
|
|
1659
|
+
)
|
|
1660
|
+
return
|
|
1661
|
+
}
|
|
1662
|
+
rnSDK.hmsSDK?.setPermissionsAccepted()
|
|
1663
|
+
promise?.resolve(null)
|
|
1664
|
+
}
|
|
1665
|
+
|
|
1627
1666
|
// region Warning on JS side
|
|
1628
1667
|
@ReactMethod
|
|
1629
1668
|
fun addListener(eventName: String) {
|
|
@@ -87,6 +87,13 @@ class HMSRNSDK(
|
|
|
87
87
|
}
|
|
88
88
|
}
|
|
89
89
|
|
|
90
|
+
if (data?.hasKey("haltPreviewJoinForPermissionsRequest") == true) {
|
|
91
|
+
val halt = data?.getBoolean("haltPreviewJoinForPermissionsRequest")
|
|
92
|
+
if (halt != null) {
|
|
93
|
+
builder.haltPreviewJoinForPermissionsRequest(halt)
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
90
97
|
this.hmsSDK = builder.build()
|
|
91
98
|
|
|
92
99
|
hmsSDK?.let {
|
|
@@ -286,6 +293,17 @@ class HMSRNSDK(
|
|
|
286
293
|
data.putArray("removedPeers", removedPeersArray)
|
|
287
294
|
delegate.emitEvent("ON_PEER_LIST_UPDATED", data)
|
|
288
295
|
}
|
|
296
|
+
|
|
297
|
+
override fun onPermissionsRequested(permissions: List<String>) {
|
|
298
|
+
if (eventsEnableStatus["ON_PERMISSIONS_REQUESTED"] != true) {
|
|
299
|
+
return
|
|
300
|
+
}
|
|
301
|
+
val data: WritableMap = Arguments.createMap()
|
|
302
|
+
|
|
303
|
+
data.putArray("permissions", Arguments.fromList(permissions))
|
|
304
|
+
data.putString("id", id)
|
|
305
|
+
delegate.emitEvent("ON_PERMISSIONS_REQUESTED", data)
|
|
306
|
+
}
|
|
289
307
|
},
|
|
290
308
|
)
|
|
291
309
|
} else {
|
|
@@ -557,6 +575,17 @@ class HMSRNSDK(
|
|
|
557
575
|
data.putString("id", id)
|
|
558
576
|
delegate.emitEvent("ON_TRANSCRIPTS", data)
|
|
559
577
|
}
|
|
578
|
+
|
|
579
|
+
override fun onPermissionsRequested(permissions: List<String>) {
|
|
580
|
+
if (eventsEnableStatus["ON_PERMISSIONS_REQUESTED"] != true) {
|
|
581
|
+
return
|
|
582
|
+
}
|
|
583
|
+
val data: WritableMap = Arguments.createMap()
|
|
584
|
+
|
|
585
|
+
data.putArray("permissions", Arguments.fromList(permissions))
|
|
586
|
+
data.putString("id", id)
|
|
587
|
+
delegate.emitEvent("ON_PERMISSIONS_REQUESTED", data)
|
|
588
|
+
}
|
|
560
589
|
},
|
|
561
590
|
)
|
|
562
591
|
|
|
@@ -1440,6 +1469,7 @@ class HMSRNSDK(
|
|
|
1440
1469
|
|
|
1441
1470
|
if (audioTrackId == trackId) {
|
|
1442
1471
|
peer.audioTrack?.setVolume(volume)
|
|
1472
|
+
callback?.resolve(null)
|
|
1443
1473
|
return
|
|
1444
1474
|
}
|
|
1445
1475
|
|
|
@@ -1449,6 +1479,7 @@ class HMSRNSDK(
|
|
|
1449
1479
|
|
|
1450
1480
|
if (trackExtracted != null) {
|
|
1451
1481
|
trackExtracted.setVolume(volume)
|
|
1482
|
+
callback?.resolve(null)
|
|
1452
1483
|
return
|
|
1453
1484
|
}
|
|
1454
1485
|
}
|
|
@@ -1721,7 +1752,7 @@ class HMSRNSDK(
|
|
|
1721
1752
|
val audioDevice = data.getString("audioDevice")
|
|
1722
1753
|
hmsSDK?.let {
|
|
1723
1754
|
it.switchAudioOutput(HMSHelper.getAudioDevice(audioDevice))
|
|
1724
|
-
callback?.resolve(
|
|
1755
|
+
callback?.resolve(null)
|
|
1725
1756
|
}
|
|
1726
1757
|
} else {
|
|
1727
1758
|
val errorMessage = "switchAudioOutput: $requiredKeys"
|
|
@@ -1807,7 +1838,7 @@ class HMSRNSDK(
|
|
|
1807
1838
|
override fun onSuccess() {
|
|
1808
1839
|
isAudioSharing = false
|
|
1809
1840
|
audioshareCallback = null
|
|
1810
|
-
callback?.resolve(
|
|
1841
|
+
callback?.resolve(true)
|
|
1811
1842
|
}
|
|
1812
1843
|
},
|
|
1813
1844
|
)
|
|
@@ -1825,7 +1856,7 @@ class HMSRNSDK(
|
|
|
1825
1856
|
val mode = HMSHelper.getAudioMixingMode(data.getString("audioMixingMode"))
|
|
1826
1857
|
audioMixingMode = mode
|
|
1827
1858
|
hmsSDK?.setAudioMixingMode(mode)
|
|
1828
|
-
callback?.resolve(
|
|
1859
|
+
callback?.resolve(true)
|
|
1829
1860
|
} else {
|
|
1830
1861
|
val errorMessage = "setAudioMixingMode: $requiredKeys"
|
|
1831
1862
|
rejectCallback(callback, errorMessage)
|
|
@@ -7,6 +7,8 @@ import android.content.Intent
|
|
|
7
7
|
import android.content.IntentFilter
|
|
8
8
|
import android.os.Build
|
|
9
9
|
import androidx.annotation.RequiresApi
|
|
10
|
+
import androidx.core.content.ContextCompat
|
|
11
|
+
import androidx.core.content.ContextCompat.RECEIVER_NOT_EXPORTED
|
|
10
12
|
|
|
11
13
|
data class PIPAction(
|
|
12
14
|
val title: String,
|
|
@@ -62,7 +64,7 @@ class PipActionReceiver(
|
|
|
62
64
|
|
|
63
65
|
IntentFilter().also {
|
|
64
66
|
it.addAction(PIP_INTENT_ACTION)
|
|
65
|
-
|
|
67
|
+
ContextCompat.registerReceiver(activity, this, it, RECEIVER_NOT_EXPORTED)
|
|
66
68
|
}
|
|
67
69
|
registered = true
|
|
68
70
|
}
|
package/ios/HMSConstants.swift
CHANGED
package/ios/HMSManager.m
CHANGED
|
@@ -393,4 +393,43 @@ RCT_EXTERN_METHOD(handleRealTimeTranscription
|
|
|
393
393
|
: (NSDictionary)data
|
|
394
394
|
: (RCTPromiseResolveBlock)resolve
|
|
395
395
|
: (RCTPromiseRejectBlock)reject)
|
|
396
|
+
|
|
397
|
+
#pragma mark - PIP Mode Support
|
|
398
|
+
|
|
399
|
+
RCT_EXTERN_METHOD(handlePipActions
|
|
400
|
+
: (NSString)action
|
|
401
|
+
: (NSDictionary)data
|
|
402
|
+
: (RCTPromiseResolveBlock)resolve
|
|
403
|
+
: (RCTPromiseRejectBlock)reject)
|
|
404
|
+
|
|
405
|
+
RCT_EXTERN_METHOD(setupPIP
|
|
406
|
+
: (NSDictionary)data
|
|
407
|
+
: (RCTPromiseResolveBlock)resolve
|
|
408
|
+
: (RCTPromiseRejectBlock)reject)
|
|
409
|
+
|
|
410
|
+
RCT_EXTERN_METHOD(stopPIP
|
|
411
|
+
: (NSDictionary)data
|
|
412
|
+
: (RCTPromiseResolveBlock)resolve
|
|
413
|
+
: (RCTPromiseRejectBlock)reject)
|
|
414
|
+
|
|
415
|
+
RCT_EXTERN_METHOD(disposePIP
|
|
416
|
+
: (NSDictionary)data
|
|
417
|
+
: (RCTPromiseResolveBlock)resolve
|
|
418
|
+
: (RCTPromiseRejectBlock)reject)
|
|
419
|
+
|
|
420
|
+
RCT_EXTERN_METHOD(isPIPActive
|
|
421
|
+
: (NSDictionary)data
|
|
422
|
+
: (RCTPromiseResolveBlock)resolve
|
|
423
|
+
: (RCTPromiseRejectBlock)reject)
|
|
424
|
+
|
|
425
|
+
RCT_EXTERN_METHOD(changeIOSPIPVideoTrack
|
|
426
|
+
: (NSDictionary)data
|
|
427
|
+
: (RCTPromiseResolveBlock)resolve
|
|
428
|
+
: (RCTPromiseRejectBlock)reject)
|
|
429
|
+
|
|
430
|
+
RCT_EXTERN_METHOD(setActiveSpeakerInIOSPIP
|
|
431
|
+
: (NSDictionary)data
|
|
432
|
+
: (RCTPromiseResolveBlock)resolve
|
|
433
|
+
: (RCTPromiseRejectBlock)reject)
|
|
434
|
+
|
|
396
435
|
@end
|
package/ios/HMSManager.swift
CHANGED
|
@@ -37,7 +37,7 @@ class HMSManager: RCTEventEmitter {
|
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
override func supportedEvents() -> [String]! {
|
|
40
|
-
return [ON_JOIN, ON_PREVIEW, ON_ROOM_UPDATE, ON_PEER_UPDATE, ON_TRACK_UPDATE, ON_ERROR, ON_MESSAGE, ON_SPEAKER, RECONNECTING, RECONNECTED, ON_ROLE_CHANGE_REQUEST, ON_CHANGE_TRACK_STATE_REQUEST, ON_REMOVED_FROM_ROOM, ON_RTC_STATS, ON_LOCAL_AUDIO_STATS, ON_LOCAL_VIDEO_STATS, ON_REMOTE_AUDIO_STATS, ON_REMOTE_VIDEO_STATS, ON_AUDIO_DEVICE_CHANGED, HMSConstants.ON_SESSION_STORE_AVAILABLE, HMSConstants.ON_SESSION_STORE_CHANGED, HMSConstants.ON_PEER_LIST_UPDATED, HMSConstants.ON_POLL_UPDATE, HMSConstants.ON_WHITEBOARD_UPDATE, HMSConstants.ON_TRANSCRIPTS]
|
|
40
|
+
return [ON_JOIN, ON_PREVIEW, ON_ROOM_UPDATE, ON_PEER_UPDATE, ON_TRACK_UPDATE, ON_ERROR, ON_MESSAGE, ON_SPEAKER, RECONNECTING, RECONNECTED, ON_ROLE_CHANGE_REQUEST, ON_CHANGE_TRACK_STATE_REQUEST, ON_REMOVED_FROM_ROOM, ON_RTC_STATS, ON_LOCAL_AUDIO_STATS, ON_LOCAL_VIDEO_STATS, ON_REMOTE_AUDIO_STATS, ON_REMOTE_VIDEO_STATS, ON_AUDIO_DEVICE_CHANGED, HMSConstants.ON_SESSION_STORE_AVAILABLE, HMSConstants.ON_SESSION_STORE_CHANGED, HMSConstants.ON_PEER_LIST_UPDATED, HMSConstants.ON_POLL_UPDATE, HMSConstants.ON_WHITEBOARD_UPDATE, HMSConstants.ON_TRANSCRIPTS, HMSConstants.ON_PIP_MODE_CHANGED]
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
// MARK: - HMS SDK Delegate Callbacks
|
|
@@ -837,4 +837,119 @@ class HMSManager: RCTEventEmitter {
|
|
|
837
837
|
}
|
|
838
838
|
rnsdk.handleRealTimeTranscription(data, resolve, reject)
|
|
839
839
|
}
|
|
840
|
+
|
|
841
|
+
// MARK: - PIP Mode Support
|
|
842
|
+
|
|
843
|
+
@objc
|
|
844
|
+
func handlePipActions(_ action: String,
|
|
845
|
+
_ data: NSDictionary,
|
|
846
|
+
_ resolve: RCTPromiseResolveBlock?,
|
|
847
|
+
_ reject: RCTPromiseRejectBlock?) {
|
|
848
|
+
|
|
849
|
+
guard let rnsdk = HMSHelper.getHms(data, hmsCollection) else {
|
|
850
|
+
reject?("6004", "HMSRNSDK instance not found!", nil)
|
|
851
|
+
return
|
|
852
|
+
}
|
|
853
|
+
|
|
854
|
+
DispatchQueue.main.async { [weak self] in
|
|
855
|
+
switch action {
|
|
856
|
+
case "isPipModeSupported":
|
|
857
|
+
self?.isPipModeSupported(resolve, reject)
|
|
858
|
+
case "enterPipMode":
|
|
859
|
+
rnsdk.enterPipMode(resolve, reject)
|
|
860
|
+
case "setPictureInPictureParams":
|
|
861
|
+
if #available(iOS 15.0, *) {
|
|
862
|
+
rnsdk.setPictureInPictureParams(data, resolve, reject)
|
|
863
|
+
} else {
|
|
864
|
+
reject?("6004", "setPictureInPictureParams should be invoked for iOS 15 & above versions", nil)
|
|
865
|
+
}
|
|
866
|
+
default:
|
|
867
|
+
reject?("6004", "Unknown action type received", nil)
|
|
868
|
+
}
|
|
869
|
+
}
|
|
870
|
+
}
|
|
871
|
+
|
|
872
|
+
@objc
|
|
873
|
+
func stopPIP(_ data: NSDictionary,
|
|
874
|
+
_ resolve: RCTPromiseResolveBlock?,
|
|
875
|
+
_ reject: RCTPromiseRejectBlock?) {
|
|
876
|
+
|
|
877
|
+
guard let rnsdk = HMSHelper.getHms(data, hmsCollection) else {
|
|
878
|
+
reject?("6004", "HMSRNSDK instance not found!", nil)
|
|
879
|
+
return
|
|
880
|
+
}
|
|
881
|
+
|
|
882
|
+
DispatchQueue.main.async {
|
|
883
|
+
rnsdk.stopPIP(resolve, reject)
|
|
884
|
+
}
|
|
885
|
+
}
|
|
886
|
+
|
|
887
|
+
@objc
|
|
888
|
+
func disposePIP(_ data: NSDictionary,
|
|
889
|
+
_ resolve: RCTPromiseResolveBlock?,
|
|
890
|
+
_ reject: RCTPromiseRejectBlock?) {
|
|
891
|
+
|
|
892
|
+
guard let rnsdk = HMSHelper.getHms(data, hmsCollection) else {
|
|
893
|
+
reject?("6004", "HMSRNSDK instance not found!", nil)
|
|
894
|
+
return
|
|
895
|
+
}
|
|
896
|
+
|
|
897
|
+
DispatchQueue.main.async {
|
|
898
|
+
rnsdk.disposePIP(resolve, reject)
|
|
899
|
+
}
|
|
900
|
+
}
|
|
901
|
+
|
|
902
|
+
@objc
|
|
903
|
+
func isPipModeSupported(_ resolve: RCTPromiseResolveBlock?,
|
|
904
|
+
_ reject: RCTPromiseRejectBlock?) {
|
|
905
|
+
|
|
906
|
+
resolve?(AVPictureInPictureController.isPictureInPictureSupported())
|
|
907
|
+
}
|
|
908
|
+
|
|
909
|
+
@objc
|
|
910
|
+
func isPIPActive(_ data: NSDictionary,
|
|
911
|
+
_ resolve: RCTPromiseResolveBlock?,
|
|
912
|
+
_ reject: RCTPromiseRejectBlock?) {
|
|
913
|
+
|
|
914
|
+
guard let rnsdk = HMSHelper.getHms(data, hmsCollection) else {
|
|
915
|
+
reject?("6004", "HMSRNSDK instance not found!", nil)
|
|
916
|
+
return
|
|
917
|
+
}
|
|
918
|
+
|
|
919
|
+
DispatchQueue.main.async {
|
|
920
|
+
rnsdk.isPIPActive(resolve, reject)
|
|
921
|
+
}
|
|
922
|
+
}
|
|
923
|
+
|
|
924
|
+
@objc
|
|
925
|
+
func changeIOSPIPVideoTrack(_ data: NSDictionary,
|
|
926
|
+
_ resolve: RCTPromiseResolveBlock?,
|
|
927
|
+
_ reject: RCTPromiseRejectBlock?) {
|
|
928
|
+
|
|
929
|
+
guard let rnsdk = HMSHelper.getHms(data, hmsCollection) else {
|
|
930
|
+
reject?("6004", "HMSRNSDK instance not found!", nil)
|
|
931
|
+
return
|
|
932
|
+
}
|
|
933
|
+
DispatchQueue.main.async {
|
|
934
|
+
if #available(iOS 15.0, *) {
|
|
935
|
+
rnsdk.changeIOSPIPVideoTrack(data, resolve, reject)
|
|
936
|
+
} else {
|
|
937
|
+
reject?("6004", "changeIOSPIPVideoTrack is not supported on iOS version lower than 15.0", nil)
|
|
938
|
+
}
|
|
939
|
+
}
|
|
940
|
+
}
|
|
941
|
+
|
|
942
|
+
@objc
|
|
943
|
+
func setActiveSpeakerInIOSPIP(_ data: NSDictionary,
|
|
944
|
+
_ resolve: RCTPromiseResolveBlock?,
|
|
945
|
+
_ reject: RCTPromiseRejectBlock?) {
|
|
946
|
+
|
|
947
|
+
guard let rnsdk = HMSHelper.getHms(data, hmsCollection) else {
|
|
948
|
+
reject?("6004", "HMSRNSDK instance not found!", nil)
|
|
949
|
+
return
|
|
950
|
+
}
|
|
951
|
+
DispatchQueue.main.async {
|
|
952
|
+
rnsdk.setActiveSpeakerInIOSPIP(data, resolve, reject)
|
|
953
|
+
}
|
|
954
|
+
}
|
|
840
955
|
}
|