com.opentok.android.PublisherKit
com.opentok.android.Publisher
All Implemented Interfaces:
: Observer
public class Publisher extends PublisherKit
Used to capture an audio-video stream from the device's microphone and camera for use in an OpenTok session. Create a Publisher instance by calling the Publisher constructor.
When the view of a Publisher leaves the active window, the Publisher object is destroyed. This is the case for an activity that is stopped or paused.
See Also:
: - Session.publish(PublisherKit publisher)
Nested Class Summary
Nested Classes
Modifier and Type
Class
Description
static class
Publisher.Builder
Used to build a Publisher object.
static enum
Publisher.CameraCaptureFrameRate
Defines values for the frameRate parameter of the
Publisher.Builder.frameRate(Publisher.CameraCaptureFrameRate frameRate) method.
static enum
Publisher.CameraCaptureResolution
Defines values for the resolution parameter of the
Publisher.Builder.resolution(Publisher.CameraCaptureResolution resolution) method.
static interface
Publisher.CameraListener
Monitors when the camera used by the publisher changes.
Nested classes/interfaces inherited from class com.opentok.android.PublisherKit
PublisherKit.AudioLevelListener, PublisherKit.AudioStatsListener, PublisherKit.AudioTransformer, PublisherKit.CustomAudioTransformer, PublisherKit.CustomVideoTransformer, PublisherKit.DegradationPreference, PublisherKit.MediaLinkStatsListener, PublisherKit.MuteListener, PublisherKit.PreferredVideoCodecs, PublisherKit.PublisherAudioStats, PublisherKit.PublisherKitVideoType, PublisherKit.PublisherListener, PublisherKit.PublisherMediaLinkStats, PublisherKit.PublisherRtcStats, PublisherKit.PublisherRtcStatsReportListener, PublisherKit.PublisherVideoStats, PublisherKit.VideoBitratePreset, PublisherKit.VideoLayerStats, PublisherKit.VideoListener, PublisherKit.VideoStatsListener, PublisherKit.VideoTransformer
Field Summary
Fields
Modifier and Type
Field
Description
protected Publisher.CameraCaptureFrameRate
cameraFrameRate
protected Publisher.CameraListener
cameraListener
protected Publisher.CameraCaptureResolution
cameraResolution
Fields inherited from class com.opentok.android.PublisherKit
audioLevelListener, audioStatsListener, capturer, context, handler, mediaLinkStatsListener, muteListener, NETWORK_REASON_NETWORK_CONDITION_CHANGE, publisherListener, renderer, rtcStatsReportListener, VIDEO_REASON_CODEC_CHANGE, VIDEO_REASON_NONE, VIDEO_REASON_QUALITY, VIDEO_REASON_QUALITY_DEGRADATION_BANDWIDTH, VIDEO_REASON_QUALITY_DEGRADATION_CPU, VIDEO_REASON_QUALITY_DEGRADATION_OTHER, VIDEO_REASON_RESOLUTION_CHANGE, videoListener, videoStatsListener
Constructor Summary
Constructors
Modifier
Constructor
Description
protected
Publisher(Publisher.Builder builder)
Method Summary
All MethodsInstance MethodsConcrete MethodsDeprecated Methods
Modifier and Type
Method
Description
void
cycleCamera()
Cycles between cameras, if there are multiple cameras on the device.
int
getCameraId()
Deprecated.
protected void
onCameraChanged(int newCameraId)
Invoked when the publisher changes the active camera.
protected void
onCameraError(OpentokError error)
Invoked when there is an error accessing the camera.
void
setCameraId(int cameraId)
Deprecated.
void
setCameraListener(Publisher.CameraListener listener)
Sets a Publisher.CameraListener object to monitor when the camera used by
the publisher changes.
void
setCameraTorch(boolean enable)
Sets the preferred flashlight (torch) mode for the camera.
void
setCameraZoomFactor(float cameraZoomFactor)
The preferred zoom factor (ratio) for the camera.
void
startPreview()
Deprecated.
void
swapCamera()
Deprecated.
Methods inherited from class com.opentok.android.PublisherKit
destroy, finalize, getCapturer, getDegradationPreference, getMaxVideoBitrate, getName, getPublishAudio, getPublishCaptions, getPublisherVideoType, getPublishVideo, getRenderer, getRtcStatsReport, getSession, getStream, getVideoBitratePreset, getView, onAudioLevelUpdated, onError, onMuteForced, onPause, onRestart, onResume, onRtcStatsReport, onStop, onStreamCreated, onStreamDestroyed, setAudioLevelListener, setAudioStatsListener, setAudioTransformers, setCapturer, setDegradationPreference, setMaxVideoBitrate, setMediaLinkStatsListener, setMuteListener, setName, setPublishAudio, setPublishCaptions, setPublisherListener, setPublisherVideoType, setPublishVideo, setRenderer, setRtcStatsReportListener, setStyle, setVideoBitratePreset, setVideoListener, setVideoStatsListener, setVideoTransformers, update
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Field Details
cameraFrameRate
protected Publisher.CameraCaptureFrameRate cameraFrameRate
cameraResolution
protected Publisher.CameraCaptureResolution cameraResolution
cameraListener
protected Publisher.CameraListener cameraListener
Constructor Details
Publisher
protected Publisher(Publisher.Builder builder)
Method Details
setCameraListener
public void setCameraListener(Publisher.CameraListener listener)
Sets a Publisher.CameraListener object to monitor when the camera used by
the publisher changes.
Parameters:
: listener - The Publisher.CameraListener instance.
setCameraId
@Deprecated public void setCameraId(int cameraId)
Deprecated.
Sets the desired camera. cameraId can be a value between 0
and android.hardware.Camera#getNumberOfCameras() - 1.
When the camera used by the Publisher changes, the
Publisher.CameraListener.onCameraChanged(Publisher publisher, int newCameraId)
method is called.
This method is deprecated. You should use the new cycleCamera() method to cycle
between cameras, if there are multiple cameras on the device.
Parameters:
: cameraId - the id of the camera you want to use on this publisher
setCameraTorch
public void setCameraTorch(boolean enable)
Sets the preferred flashlight (torch) mode for the camera. Note that this is a preference and may not take effect if the active camera does not support flashlight functionality (for example, the front camera typically does not support a flashlight).
Parameters:
: enable - The default value is false. Passing true or false
indicates whether the publisher should enable or disable the camera's flashlight
when available.
setCameraZoomFactor
public void setCameraZoomFactor(float cameraZoomFactor)
The preferred zoom factor (ratio) for the camera. A value of 1.0 represents no zoom (the default view). The value ranges from 0.5 to the maximum zoom factor. Values between 0.5 and 1.0 represent ultra-wide-angle (zoom out) and values between 1.0 and the maximum zoom factor represent zooming in. The actual zoom factor applied is automatically clamped to the range supported by the active camera’s configuration — if the camera does not support ultra-wide-angle, zoom factors set below 1.0 will not take effect and no zoom will be applied. For values over the maximum zoom factor supported by the camera, the zoom factor will be set with the max value. If the publisher camera is enabled, getting this property returns the current zoom factor; if the publisher camera is not enabled, getting this property returns the preferred zoom factor.
Parameters:
: cameraZoomFactor - Setting this property indicates the desired level of zoom,
where a value of 1.0 represents no zoom (the default view).
cycleCamera
public void cycleCamera()
Cycles between cameras, if there are multiple cameras on the device. When
the camera used by the Publisher changes, the
Publisher.CameraListener.onCameraChanged(Publisher publisher, int newCameraId)
method is called.
swapCamera
@Deprecated public void swapCamera()
Deprecated.
This method is deprecated. You should use the new cycleCamera() method to cycle
between cameras, if there are multiple cameras on the device.
If you are using a custom video capturer, implement the
BaseVideoCapturer.CaptureSwitch interface in the object that extends
BaseVideoCapturer, and implement the
BaseVideoCapturer.CaptureSwitch.swapCamera(int cameraId) method to define the behavior
of the Publisher.swapCamera() method.
getCameraId
@Deprecated public int getCameraId()
Deprecated.
Returns the currently active camera ID. This value is either 0 (for the
back-facing camera) or 1 (for the front-facing camera). If
setCameraId(int) is never called, the return value is 1 (for the
front-facing camera).
This method is deprecated. You should use the new cycleCamera() method to cycle
between cameras, if there are multiple cameras on the device.
onCameraChanged
protected void onCameraChanged(int newCameraId)
Invoked when the publisher changes the active camera.
If you extend the Publisher class, you can override this method instead of the
onCameraChanged() method of the Publisher.CameraListener
interface.
Parameters:
: newCameraId - The ID of the new active camera.
onCameraError
protected void onCameraError(OpentokError error)
Invoked when there is an error accessing the camera.
Parameters:
: error - The error.
startPreview
@Deprecated public void startPreview()
Deprecated.
From version 2.17.0 on, this method doesn't do anything. As soon as the Publisher object is created the camera's video is displayed in the Publisher's view. This change makes the behaviour consistent across OpenTok client SDKs.