Class PublisherKit.Builder
- java.lang.Object
-
- com.opentok.android.PublisherKit.Builder
-
- Direct Known Subclasses:
Publisher.Builder
- Enclosing class:
- PublisherKit
public static class PublisherKit.Builder extends java.lang.Object
Used to build aPublisherKit
object. Instantiate a Builder object using thePublisherKit.Builder(Context context)
constructor. Then call methods of theBuilder
instance to add settings for the publisher. Then call thebuild()
method, which returns aPublisherKit
object.Use the
Session.publish(PublisherKit publisher)
method to start streaming from the publisher into a session.Publishers cannot be reused. Instantiate a new
PublisherKit
object each time you want to publish a new stream.
-
-
Constructor Summary
Constructors Constructor Description Builder(android.content.Context context)
Instantiates aPublisherKit.Builder
object.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description PublisherKit.Builder
audioBitrate(int bitsPerSecond)
Sets the desired bitrate for the published audio, in bits per second.PublisherKit.Builder
audioTrack(boolean enabled)
Sets whether to include an audio track in the published stream (true
, the default) or not (false
).PublisherKit
build()
PublisherKit.Builder
capturer(BaseVideoCapturer capturer)
Sets the video capturer to use for the publisher.PublisherKit.Builder
enableOpusDtx(boolean enable)
PublisherKit.Builder
name(java.lang.String name)
Sets the name of the published video.PublisherKit.Builder
publisherAudioFallbackEnabled(boolean enabled)
Whether the stream will use the publisher audio-fallback feature (true
) or not (false
).PublisherKit.Builder
renderer(BaseVideoRenderer renderer)
Sets the video renderer to use for the publisher.PublisherKit.Builder
scalableScreenshare(boolean enabled)
Whether to allow use of scalable video for a publisher that has the videoType set to PublisherKitVideoTypeScreen (true) or not (false, the default).PublisherKit.Builder
subscriberAudioFallbackEnabled(boolean enabled)
Whether the stream will use the subscriber audio-fallback feature (true
) or not (false
), for subscribers to the published stream.PublisherKit.Builder
videoTrack(boolean enabled)
Sets whether to include an video track in the published stream (true
, the default) or not (false
).
-
-
-
Constructor Detail
-
Builder
public Builder(android.content.Context context)
Instantiates aPublisherKit.Builder
object.- Parameters:
context
- The android.content.Context for the publisher.
-
-
Method Detail
-
name
public PublisherKit.Builder name(java.lang.String name)
Sets the name of the published video. Thename
property for a stream published by this publisher will be set to this value (on all clients).
-
audioTrack
public PublisherKit.Builder audioTrack(boolean enabled)
Sets whether to include an audio track in the published stream (true
, the default) or not (false
). Creating a publisher without an audio track can save CPU resources and reduce the bandwidth used by the stream.If you call this and pass in
false
, the audio subsystem will not be initialized for the publisher, and calling thePublisherKit.setPublishAudio(boolean publishAudio)
method will have no effect. If your application does not require the use of audio, it is recommended to use this Builder setting rather than use thePublisherKit.setPublishAudio(boolean publishAudio)
method, which only temporarily disables the audio track.
-
videoTrack
public PublisherKit.Builder videoTrack(boolean enabled)
Sets whether to include an video track in the published stream (true
, the default) or not (false
). Creating a publisher without a video track can save CPU resources and reduce the bandwidth used by the stream.If you call this and pass in
false
, the video subsystem will not be initialized for the publisher, and calling thePublisherKit.setPublishVideo(boolean publishVideo)
method will have no effect. If your application does not require the use of video, it is recommended to use this Builder setting rather than use thePublisherKit.setPublishVideo(boolean publishVideo)
method, which only temporarily disables the video track.
-
capturer
public PublisherKit.Builder capturer(BaseVideoCapturer capturer)
Sets the video capturer to use for the publisher.
-
renderer
public PublisherKit.Builder renderer(BaseVideoRenderer renderer)
Sets the video renderer to use for the publisher.
-
audioBitrate
public PublisherKit.Builder audioBitrate(int bitsPerSecond)
Sets the desired bitrate for the published audio, in bits per second. The supported range of values is 6,000 - 510,000. (Invalid values are ignored.) Set this value to enable high-quality audio (or to reduce bandwidth usage with lower-quality audio).The following are recommended settings:
- 8,000 - 12,000 for narrowband (NB) speech
- 16,000 - 20,000 for wideband (WB) speech
- 28,000 - 40,000 for full-band (FB) speech
- 48,000 - 64,000 for full-band (FB) mono music
- 64,000 - 128,000 for full-band (FB) stereo music
The default value is 40,000.
To set other audio settings, see the
AudioDeviceManager
class.- Parameters:
bitsPerSecond
- The desired bitrate of the audio, in bits per second.- Returns:
- This Builder object.
-
enableOpusDtx
public PublisherKit.Builder enableOpusDtx(boolean enable)
Whether to enable Opus DTX (true
) or not (false
, the default). Enabling Opus DTX can reduce bandwidth usage in streams that have long periods of silence.By default, Opus DTX is disabled. If this property is set to
true
, Opus DTX will be enabled for the publisher.
-
scalableScreenshare
public PublisherKit.Builder scalableScreenshare(boolean enabled)
Whether to allow use of scalable video for a publisher that has the videoType set to PublisherKitVideoTypeScreen (true) or not (false, the default).
-
subscriberAudioFallbackEnabled
public PublisherKit.Builder subscriberAudioFallbackEnabled(boolean enabled)
Whether the stream will use the subscriber audio-fallback feature (true
) or not (false
), for subscribers to the published stream. The subscriber audio-fallback feature is available in sessions that use the the OpenTok Media Router. With the subscriber audio-fallback feature enabled (the default), when the OpenTok Media Router determines that a stream's quality has degraded significantly for a specific subscriber, it disables the video in that subscriber in order to preserve audio quality.The default setting is
true
(the audio-fallback feature is enabled). When using the screen video type in a session that uses the OpenTok Media Server, the subscriber audio-fallback setting is set tofalse
by default, so that the video does not drop out in subscribers.
-
publisherAudioFallbackEnabled
public PublisherKit.Builder publisherAudioFallbackEnabled(boolean enabled)
Whether the stream will use the publisher audio-fallback feature (true
) or not (false
). With the publisher audio-fallback feature enabled (the default), when publisher determines that a stream's quality has degraded significantly, it disables the video in order to preserve audio quality.The default setting is
false
(the audio-fallback feature is disabled).
-
build
public PublisherKit build()
- Returns:
- Returns a new
PublisherKit
instance based on thePublisherKit.Builder
settings.
-
-