# Camera1Base

abstract class Camera1Base

Wrapper to stream with camera1 api and microphone. Support stream with SurfaceView, TextureView and OpenGlView(Custom SurfaceView that use OpenGl). SurfaceView and TextureView use buffer to buffer encoding mode for H264 and OpenGlView use Surface to buffer mode(This mode is generally better because skip buffer processing). API requirements: SurfaceView and TextureView mode: API 16+. OpenGlView: API 18+. Created by pedro on 7/07/17.

#### Inheritors

GenericCamera1
MultiCamera1
RtmpCamera1
RtspCamera1
SrtCamera1
UdpCamera1

## Constructors

Camera1Base
Link copied to clipboard
constructor(surfaceView: SurfaceView)
constructor(textureView: TextureView)
@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN_MR2)
constructor(openGlView: OpenGlView)
@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN_MR2)
constructor(context: Context)

## Properties

glInterface
Link copied to clipboard
open val glInterface: GlInterface

## Functions

disableAudio
Link copied to clipboard
open fun disableAudio()
Mute microphone, can be called before, while and after stream.
disableAutoFocus
Link copied to clipboard
open fun disableAutoFocus(): Boolean
disableFaceDetection
Link copied to clipboard
open fun disableFaceDetection()
disableLantern
Link copied to clipboard
open fun disableLantern()
disableVideoStabilization
Link copied to clipboard
open fun disableVideoStabilization()
enableAudio
Link copied to clipboard
open fun enableAudio()
Enable a muted microphone, can be called before, while and after stream.
enableAutoFocus
Link copied to clipboard
open fun enableAutoFocus(): Boolean
enableAutoWhiteBalance
Link copied to clipboard
open fun enableAutoWhiteBalance(mode: String): Boolean
enableFaceDetection
Link copied to clipboard
open fun enableFaceDetection(faceDetectorCallback: FaceDetectorCallback): Boolean
enableLantern
Link copied to clipboard
open fun enableLantern()
enableVideoStabilization
Link copied to clipboard
open fun enableVideoStabilization(): Boolean
forceBt709Color
Link copied to clipboard
open fun forceBt709Color(enabled: Boolean)
forceCodecType
Link copied to clipboard
open fun forceCodecType(codecTypeVideo: CodecUtil.CodecType, codecTypeAudio: CodecUtil.CodecType)
forceFpsLimit
Link copied to clipboard
open fun forceFpsLimit(enabled: Boolean)
Force stream to work with fps selected in prepareVideo method.
getAutoWhiteBalanceModesAvailable
Link copied to clipboard
open fun getAutoWhiteBalanceModesAvailable(): List<String>
getBitrate
Link copied to clipboard
open fun getBitrate(): Int
getCameraFacing
Link copied to clipboard
open fun getCameraFacing(): CameraHelper.Facing
getExposure
Link copied to clipboard
open fun getExposure(): Int
getMaxExposure
Link copied to clipboard
open fun getMaxExposure(): Int
getMaxZoom
Link copied to clipboard
open fun getMaxZoom(): Int
Return max zoom level
getMinExposure
Link copied to clipboard
open fun getMinExposure(): Int
getMinZoom
Link copied to clipboard
open fun getMinZoom(): Int
Return min zoom level
getRecordStatus
Link copied to clipboard
open fun getRecordStatus(): RecordController.Status
getResolutionsBack
Link copied to clipboard
open fun getResolutionsBack(): List<Camera.Size>
Get supported resolutions of back camera in px.
getResolutionsFront
Link copied to clipboard
open fun getResolutionsFront(): List<Camera.Size>
Get supported resolutions of front camera in px.
getResolutionValue
Link copied to clipboard
open fun getResolutionValue(): Int
getStreamClient
Link copied to clipboard
abstract fun getStreamClient(): StreamBaseClient
getStreamHeight
Link copied to clipboard
open fun getStreamHeight(): Int
getStreamWidth
Link copied to clipboard
open fun getStreamWidth(): Int
getSupportedFps
Link copied to clipboard
open fun getSupportedFps(): List<Array<Int>>
getWhiteBalance
Link copied to clipboard
open fun getWhiteBalance(): String
getZoom
Link copied to clipboard
open fun getZoom(): Float
Return current zoom level
isAudioMuted
Link copied to clipboard
open fun isAudioMuted(): Boolean
Get mute state of microphone.
isAutoFocusEnabled
Link copied to clipboard
open fun isAutoFocusEnabled(): Boolean
isFaceDetectionEnabled
Link copied to clipboard
open fun isFaceDetectionEnabled(): Boolean
isFrontCamera
Link copied to clipboard
open fun isFrontCamera(): Boolean
Use getCameraFacing instead
isLanternEnabled
Link copied to clipboard
open fun isLanternEnabled(): Boolean
isOnPreview
Link copied to clipboard
open fun isOnPreview(): Boolean
Get preview state.
isRecording
Link copied to clipboard
open fun isRecording(): Boolean
Get record state.
isStreaming
Link copied to clipboard
open fun isStreaming(): Boolean
Get stream state.
isVideoStabilizationEnabled
Link copied to clipboard
open fun isVideoStabilizationEnabled(): Boolean
pauseRecord
Link copied to clipboard
open fun pauseRecord()
prepareAudio
Link copied to clipboard
open fun prepareAudio(): Boolean
Same to call: prepareAudio(64 * 1024, 32000, true, false, false);
open fun prepareAudio(bitrate: Int, sampleRate: Int, isStereo: Boolean): Boolean
open fun prepareAudio(bitrate: Int, sampleRate: Int, isStereo: Boolean, echoCanceler: Boolean, noiseSuppressor: Boolean): Boolean
open fun prepareAudio(audioSource: Int, bitrate: Int, sampleRate: Int, isStereo: Boolean, echoCanceler: Boolean, noiseSuppressor: Boolean): Boolean
Call this method before use @startStream.
prepareVideo
Link copied to clipboard
open fun prepareVideo(): Boolean
Same to call: rotation = 0; if (Portrait) rotation = 90; prepareVideo(640, 480, 30, 1200 * 1024, false, rotation);
open fun prepareVideo(width: Int, height: Int, bitrate: Int): Boolean
open fun prepareVideo(width: Int, height: Int, fps: Int, bitrate: Int, rotation: Int): Boolean
open fun prepareVideo(width: Int, height: Int, fps: Int, bitrate: Int, iFrameInterval: Int, rotation: Int): Boolean
backward compatibility reason
open fun prepareVideo(width: Int, height: Int, fps: Int, bitrate: Int, iFrameInterval: Int, rotation: Int, profile: Int, level: Int): Boolean
Call this method before use @startStream.
replaceView
Link copied to clipboard
@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN_MR2)
open fun replaceView(context: Context)
@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN_MR2)
open fun replaceView(openGlView: OpenGlView)
requestKeyFrame
Link copied to clipboard
open fun requestKeyFrame()
resetAudioEncoder
Link copied to clipboard
open fun resetAudioEncoder(): Boolean
resetVideoEncoder
Link copied to clipboard
open fun resetVideoEncoder(): Boolean
resumeRecord
Link copied to clipboard
open fun resumeRecord()
setAudioCodec
Link copied to clipboard
open fun setAudioCodec(codec: AudioCodec)
setCameraCallbacks
Link copied to clipboard
open fun setCameraCallbacks(callbacks: CameraCallbacks)
setCustomAudioEffect
Link copied to clipboard
open fun setCustomAudioEffect(customAudioEffect: CustomAudioEffect)
Set an audio effect modifying microphone's PCM buffer.
setEncoderErrorCallback
Link copied to clipboard
open fun setEncoderErrorCallback(encoderErrorCallback: CodecErrorCallback)
Set a callback to know errors related with Video/Audio encoders
setExposure
Link copied to clipboard
open fun setExposure(value: Int)
setFpsListener
Link copied to clipboard
open fun setFpsListener(callback: FpsListener.Callback)
setPreviewOrientation
Link copied to clipboard
open fun setPreviewOrientation(orientation: Int)
Change preview orientation can be called while stream.
setRecordController
Link copied to clipboard
open fun setRecordController(recordController: RecordController)
setTimestampMode
Link copied to clipboard
open fun setTimestampMode(timestampModeVideo: TimestampMode, timestampModeAudio: TimestampMode)
Set the mode to calculate timestamp.
setVideoBitrateOnFly
Link copied to clipboard
@RequiresApi(api = Build.VERSION_CODES.KITKAT)
open fun setVideoBitrateOnFly(bitrate: Int)
Set video bitrate of H264 in bits per second while stream.
setVideoCodec
Link copied to clipboard
open fun setVideoCodec(codec: VideoCodec)
setZoom
Link copied to clipboard
open fun setZoom(event: MotionEvent)
open fun setZoom(level: Int)
Set zoomIn or zoomOut to camera.
open fun setZoom(event: MotionEvent, delta: Int)
startPreview
Link copied to clipboard
open fun startPreview()
open fun startPreview(cameraFacing: CameraHelper.Facing)
open fun startPreview(cameraFacing: Int)
open fun startPreview(cameraFacing: CameraHelper.Facing, rotation: Int)
open fun startPreview(width: Int, height: Int)
open fun startPreview(cameraFacing: CameraHelper.Facing, width: Int, height: Int)
open fun startPreview(cameraFacing: Int, width: Int, height: Int)
open fun startPreview(cameraFacing: CameraHelper.Facing, width: Int, height: Int, rotation: Int)
open fun startPreview(cameraFacing: Int, width: Int, height: Int, rotation: Int)
open fun startPreview(cameraFacing: CameraHelper.Facing, width: Int, height: Int, fps: Int, rotation: Int)
open fun startPreview(cameraId: Int, width: Int, height: Int, fps: Int, rotation: Int)
Start camera preview.
startRecord
Link copied to clipboard
@RequiresApi(api = Build.VERSION_CODES.O)
open fun startRecord(@NonNull fd: FileDescriptor)
@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN_MR2)
open fun startRecord(@NonNull path: String)
@RequiresApi(api = Build.VERSION_CODES.O)
open fun startRecord(@NonNull fd: FileDescriptor, @Nullable listener: RecordController.Listener)
@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN_MR2)
open fun startRecord(@NonNull path: String, @Nullable listener: RecordController.Listener)
Starts recording a MP4 video.
startStream
Link copied to clipboard
open fun startStream(url: String)
Need be called after @prepareVideo or/and @prepareAudio.
startStreamAndRecord
Link copied to clipboard
@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN_MR2)
open fun startStreamAndRecord(url: String, path: String)
@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN_MR2)
open fun startStreamAndRecord(url: String, path: String, listener: RecordController.Listener)
stopCamera
Link copied to clipboard
open fun stopCamera()
Similar to stopPreview but you can do it while streaming or recording.
stopPreview
Link copied to clipboard
open fun stopPreview()
Stop camera preview.
stopRecord
Link copied to clipboard
@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN_MR2)
open fun stopRecord()
Stop record MP4 video started with @startRecord.
stopStream
Link copied to clipboard
open fun stopStream()
Stop stream started with @startStream.
switchCamera
Link copied to clipboard
open fun switchCamera()
Switch camera used.
open fun switchCamera(cameraId: Int)
tapToFocus
Link copied to clipboard
open fun tapToFocus(view: View, event: MotionEvent): Boolean