GenericStream

@RequiresApi(value = 21)
class GenericStream(context: Context, connectChecker: ConnectChecker, videoSource: VideoSource, audioSource: AudioSource) : StreamBase

Created by pedro on 14/3/22.

If you use VideoManager.Source.SCREEN/AudioManager.Source.INTERNAL. Call changeVideoSourceScreen/changeAudioSourceInternal is necessary to start it.

Constructors

Link copied to clipboard
constructor(context: Context, connectChecker: ConnectChecker)
constructor(context: Context, connectChecker: ConnectChecker, videoSource: VideoSource, audioSource: AudioSource)

Properties

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

Functions

Link copied to clipboard

Change audio source. Must be called after prepareAudio.

Link copied to clipboard

Change video source to Camera1 or Camera2. Must be called after prepareVideo.

Link copied to clipboard
fun forceCodecType(codecTypeVideo: CodecUtil.CodecType, codecTypeAudio: CodecUtil.CodecType)
Link copied to clipboard
fun forceFpsLimit(enabled: Boolean)

Force stream to work with fps selected in prepareVideo method. Must be called before prepareVideo. This is not recommend because could produce fps problems.

Link copied to clipboard

Get glInterface used to render video. This is useful to send filters to stream. Must be called after prepareVideo.

Link copied to clipboard
Link copied to clipboard

return surface texture that can be used to render and encode custom data. Return null if video not prepared. start and stop rendering must be managed by the user.

Link copied to clipboard

Pause record. Ignored if you are not recording.

Link copied to clipboard
fun prepareAudio(sampleRate: Int, isStereo: Boolean, bitrate: Int, echoCanceler: Boolean = false, noiseSuppressor: Boolean = false): Boolean

Necessary only one time before start stream or record. If you want change values stop stream and record is necessary.

Link copied to clipboard
fun prepareVideo(width: Int, height: Int, bitrate: Int, fps: Int = 30, iFrameInterval: Int = 2, rotation: Int = 0, profile: Int = -1, level: Int = -1): Boolean

Necessary only one time before start preview, stream or record. If you want change values stop preview, stream and record is necessary.

Link copied to clipboard
fun release()
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

Resume record. Ignored if you are not recording and in pause mode.

Link copied to clipboard
Link copied to clipboard
fun setEncoderErrorCallback(encoderErrorCallback: EncoderErrorCallback?)

Set a callback to know errors related with Video/Audio encoders

Link copied to clipboard
Link copied to clipboard
fun setOrientation(orientation: Int)

Change stream orientation depend of activity orientation. This method affect to preview and stream. Must be called after prepareVideo.

Link copied to clipboard
Link copied to clipboard

Set video bitrate in bits per second while streaming.

Link copied to clipboard
Link copied to clipboard
fun startPreview(surfaceView: SurfaceView)

Start preview in the selected SurfaceView. Must be called after prepareVideo.

fun startPreview(textureView: TextureView)

Start preview in the selected TextureView. Must be called after prepareVideo.

fun startPreview(surfaceTexture: SurfaceTexture, width: Int, height: Int)

Start preview in the selected SurfaceTexture. Must be called after prepareVideo.

fun startPreview(surface: Surface, width: Int, height: Int)

Start preview in the selected Surface. Must be called after prepareVideo.

Link copied to clipboard

Start record.

Link copied to clipboard
fun startStream(endPoint: String)

Start stream.

Link copied to clipboard

Stop preview. Must be called after prepareVideo.

Link copied to clipboard
Link copied to clipboard

Stop stream.