# Multiple camera support Users can use both the front and back cameras of their Android mobile devices simultaneously using the methods provided by the Video SDK for Android. Multiple cameras can also be used while screen sharing. To enumerate the available cameras and read each camera's `deviceId`, `deviceName`, and selection state, see [Get the camera list](/docs/video-sdk/android/video/camera-controls/#get-the-camera-list). ## Enable or disable a multi-camera stream Pass a `deviceId` from the camera list to enable or disable that camera as a multi-stream. ```kotlin val enableBOOLResult = ZoomVideoSDK.getInstance().getVideoHelper().enableMultiStreamVideo("cameraDeviceID", null) val disableBOOLResult = ZoomVideoSDK.getInstance().getVideoHelper().disableMultiStreamVideo("cameraDeviceID") ``` ```java Boolean enableBOOLResult = ZoomVideoSDK.getInstance().getVideoHelper().enableMultiStreamVideo("cameraDeviceID", null); Boolean disableBOOLResult = ZoomVideoSDK.getInstance().getVideoHelper().disableMultiStreamVideo("cameraDeviceID"); ``` Enable and disable both fire `onMultiCameraStreamStatusChanged`. For the callback overloads, see [Multi-camera stream status](/docs/video-sdk/android/video/video-events/#multi-camera-stream-status). ## Mute or unmute a multi-camera stream Mute or unmute an active multi-camera stream by its `deviceId`. ```kotlin val muteBOOLResult = ZoomVideoSDK.getInstance().getVideoHelper().muteMultiStreamVideo("cameraDeviceID") val unmuteBOOLResult = ZoomVideoSDK.getInstance().getVideoHelper().unmuteMultiStreamVideo("cameraDeviceID") ``` ```java Boolean muteBOOLResult = ZoomVideoSDK.getInstance().getVideoHelper().muteMultiStreamVideo("cameraDeviceID"); Boolean unmuteBOOLResult = ZoomVideoSDK.getInstance().getVideoHelper().unmuteMultiStreamVideo("cameraDeviceID"); ``` ## Map a pipe or canvas back to a device ID To find the `deviceId` for a multi-camera pipe or canvas, use `getDeviceIDByMyPipe` or `getDeviceIDByMyCanvas`. For more on handling raw data, see [Raw data](/docs/video-sdk/android/raw-data/). ```kotlin val localUser = ZoomVideoSDK.getInstance().session.mySelf // Get the user's multi camera stream - ZoomVideoSDKRawDataPipe val pipeList = localUser.multiCameraStreamList for (pipe in pipeList) { val deviceID = ZoomVideoSDK.getInstance().getVideoHelper().getDeviceIDByMyPipe(pipe) } // Get the user's multi camera canvas - ZoomVideoSDKVideoCanvas val canvasList = localUser.multiCameraCanvasList for (canvas in canvasList) { val deviceID = ZoomVideoSDK.getInstance().getVideoHelper().getDeviceIDByMyCanvas(canvas) } ``` ```java ZoomVideoSDKUser localUser = ZoomVideoSDK.getInstance().getSession().getMySelf(); // Get the user's multi camera stream - ZoomVideoSDKRawDataPipe List pipeList = localUser.getMultiCameraStreamList(); for (ZoomVideoSDKRawDataPipe pipe : pipeList) { String deviceID = ZoomVideoSDK.getInstance().getVideoHelper().getDeviceIDByMyPipe(pipe); } // Get the user's multi camera canvas - ZoomVideoSDKVideoCanvas List canvasList = localUser.getMultiCameraCanvasList(); for (ZoomVideoSDKVideoCanvas canvas : canvasList) { String deviceID = ZoomVideoSDK.getInstance().getVideoHelper().getDeviceIDByMyCanvas(canvas); } ```