Skip to content

Commit a048ff9

Browse files
authored
Fix camera disable (#1254)
1 parent 05771a0 commit a048ff9

File tree

3 files changed

+20
-11
lines changed
  • stream-video-android-core/src/main/kotlin/io/getstream/video/android/core
  • tutorials/tutorial-livestream/src/main/kotlin/io/getstream/video/android/tutorial/livestream

3 files changed

+20
-11
lines changed

stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/MediaManager.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -586,13 +586,12 @@ public class CameraManager(
586586
}
587587

588588
fun disable(fromUser: Boolean = true) {
589+
if (fromUser) _status.value = DeviceStatus.Disabled
590+
589591
if (isCapturingVideo) {
590592
// 1. update our local state
591593
// 2. update the track enabled status
592594
// 3. Rtc listens and sends the update mute state request
593-
if (fromUser) {
594-
_status.value = DeviceStatus.Disabled
595-
}
596595
mediaManager.videoTrack.trySetEnabled(false)
597596
videoCapturer.stopCapture()
598597
isCapturingVideo = false

tutorials/tutorial-livestream/src/main/kotlin/io/getstream/video/android/tutorial/livestream/LiveGuest.kt

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,18 +16,16 @@
1616

1717
package io.getstream.video.android.tutorial.livestream
1818

19-
import android.widget.Toast
2019
import androidx.compose.foundation.layout.Box
2120
import androidx.compose.foundation.layout.padding
2221
import androidx.compose.runtime.Composable
23-
import androidx.compose.runtime.getValue
22+
import androidx.compose.runtime.LaunchedEffect
2423
import androidx.compose.ui.Alignment
2524
import androidx.compose.ui.Modifier
2625
import androidx.compose.ui.platform.LocalContext
2726
import androidx.compose.ui.unit.dp
2827
import androidx.navigation.NavController
2928
import io.getstream.log.Priority
30-
import io.getstream.video.android.compose.permission.LaunchCallPermissions
3129
import io.getstream.video.android.compose.ui.components.call.CallAppBar
3230
import io.getstream.video.android.compose.ui.components.livestream.LivestreamPlayer
3331
import io.getstream.video.android.core.GEO
@@ -67,11 +65,11 @@ fun LiveAudience(
6765

6866
// step3 - join a call, which type is `default` and id is `123`.
6967
val call = client.call("livestream", callId)
70-
LaunchCallPermissions(call = call) {
71-
val result = call.join()
72-
result.onError {
73-
Toast.makeText(context, "uh oh $it", Toast.LENGTH_SHORT).show()
74-
}
68+
69+
LaunchedEffect(call) {
70+
call.microphone.setEnabled(false, fromUser = true)
71+
call.camera.setEnabled(false, fromUser = true)
72+
call.join()
7573
}
7674

7775
Box {

tutorials/tutorial-livestream/src/main/kotlin/io/getstream/video/android/tutorial/livestream/LiveHost.kt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,9 @@ import androidx.navigation.NavController
4444
import io.getstream.log.Priority
4545
import io.getstream.video.android.compose.permission.LaunchCallPermissions
4646
import io.getstream.video.android.compose.theme.VideoTheme
47+
import io.getstream.video.android.compose.ui.components.call.controls.actions.FlipCameraAction
4748
import io.getstream.video.android.compose.ui.components.call.controls.actions.LeaveCallAction
49+
import io.getstream.video.android.compose.ui.components.call.controls.actions.ToggleCameraAction
4850
import io.getstream.video.android.compose.ui.components.video.VideoRenderer
4951
import io.getstream.video.android.core.Call
5052
import io.getstream.video.android.core.GEO
@@ -158,6 +160,8 @@ private fun LiveHostContent(
158160
}
159161
},
160162
bottomBar = {
163+
val isCameraEnabled by call.camera.isEnabled.collectAsState()
164+
161165
Row {
162166
Button(
163167
colors = ButtonDefaults.buttonColors(
@@ -176,6 +180,14 @@ private fun LiveHostContent(
176180
)
177181
}
178182
Spacer(modifier = Modifier.width(16.dp))
183+
ToggleCameraAction(isCameraEnabled = isCameraEnabled) {
184+
call.camera.setEnabled(it.isEnabled)
185+
}
186+
Spacer(modifier = Modifier.width(16.dp))
187+
FlipCameraAction {
188+
call.camera.flip()
189+
}
190+
Spacer(modifier = Modifier.width(16.dp))
179191
LeaveCallAction {
180192
call.leave()
181193
navController.popBackStack()

0 commit comments

Comments
 (0)