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.

Enable or disable a multi-camera stream

Pass a deviceId from the camera list to enable or disable that camera as a multi-stream.

val enableBOOLResult = ZoomVideoSDK.getInstance().getVideoHelper().enableMultiStreamVideo("cameraDeviceID", null)
val disableBOOLResult = ZoomVideoSDK.getInstance().getVideoHelper().disableMultiStreamVideo("cameraDeviceID")
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.

Mute or unmute a multi-camera stream

Mute or unmute an active multi-camera stream by its deviceId.

val muteBOOLResult = ZoomVideoSDK.getInstance().getVideoHelper().muteMultiStreamVideo("cameraDeviceID")
val unmuteBOOLResult = ZoomVideoSDK.getInstance().getVideoHelper().unmuteMultiStreamVideo("cameraDeviceID")
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.

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)
}
ZoomVideoSDKUser localUser = ZoomVideoSDK.getInstance().getSession().getMySelf();
// Get the user's multi camera stream - ZoomVideoSDKRawDataPipe
List<ZoomVideoSDKRawDataPipe> pipeList = localUser.getMultiCameraStreamList();
for (ZoomVideoSDKRawDataPipe pipe : pipeList) {
    String deviceID = ZoomVideoSDK.getInstance().getVideoHelper().getDeviceIDByMyPipe(pipe);
}
// Get the user's multi camera canvas - ZoomVideoSDKVideoCanvas
List<ZoomVideoSDKVideoCanvas> canvasList = localUser.getMultiCameraCanvasList();
for (ZoomVideoSDKVideoCanvas canvas : canvasList) {
    String deviceID = ZoomVideoSDK.getInstance().getVideoHelper().getDeviceIDByMyCanvas(canvas);
}