Skip to content

Commit

Permalink
feat(lib): add a way to explicitly set the camera.
Browse files Browse the repository at this point in the history
Former `camera` API has been renamed `cameraPosition`
  • Loading branch information
ThibaultBee committed Feb 12, 2024
1 parent d3e4269 commit 154d06b
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ import androidx.lifecycle.AndroidViewModel
import androidx.lifecycle.MutableLiveData
import video.api.livestream.ApiVideoLiveStream
import video.api.livestream.enums.CameraFacingDirection
import video.api.livestream.enums.Resolution
import video.api.livestream.example.ui.utils.Configuration
import video.api.livestream.interfaces.IConnectionListener
import video.api.livestream.models.AudioConfig
Expand Down Expand Up @@ -70,10 +69,10 @@ class PreviewViewModel(application: Application) : AndroidViewModel(application)
}

fun switchCamera() {
if (liveStream.camera == CameraFacingDirection.BACK) {
liveStream.camera = CameraFacingDirection.FRONT
if (liveStream.cameraPosition == CameraFacingDirection.BACK) {
liveStream.cameraPosition = CameraFacingDirection.FRONT
} else {
liveStream.camera = CameraFacingDirection.BACK
liveStream.cameraPosition = CameraFacingDirection.BACK
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ class ApiVideoLiveStream
* @param connectionListener connection callbacks
* @param initialAudioConfig initial audio configuration. Could be change later with [audioConfig] field.
* @param initialVideoConfig initial video configuration. Could be change later with [videoConfig] field.
* @param initialCamera initial camera. Could be change later with [camera] field.
* @param initialCamera initial camera. Could be change later with [cameraPosition] field.
* @param permissionRequester permission requester. Called when permissions are required. Always call [onGranted] when permissions are granted.
*/
@RequiresPermission(allOf = [Manifest.permission.RECORD_AUDIO, Manifest.permission.CAMERA])
Expand Down Expand Up @@ -179,8 +179,10 @@ constructor(

/**
* Get/set current camera facing direction.
*
* @see [camera]
*/
var camera: CameraFacingDirection
var cameraPosition: CameraFacingDirection
/**
* Get current camera facing direction.
*
Expand All @@ -206,9 +208,31 @@ constructor(
}
}

/**
* Get/set current camera.
*
* @see [cameraPosition]
*/
var camera: String
/**
* Gets current camera.
* It is often like "0" for back camera and "1" for front camera.
*
* @return the current camera
*/
get() = streamer.camera
/**
* Sets current camera.
*
* @param value the current camera
*/
set(value) {
streamer.camera = value
}

init {
apiVideoView.holder.addCallback(surfaceCallback)
camera = initialCamera
cameraPosition = initialCamera
audioConfig?.let {
streamer.configure(it.toSdkConfig())
}
Expand Down Expand Up @@ -334,7 +358,7 @@ constructor(
get() = _isStreaming

/**
* Starts camera preview of [camera].
* Starts camera preview of [cameraPosition].
*
* The surface provided in the constructor already manages [startPreview] and [stopPreview].
* Use this method only if you need to explicitly start preview.
Expand Down

0 comments on commit 154d06b

Please sign in to comment.