Package com.castlabs.android.player
Class CastlabsBandwidthMeter
- java.lang.Object
-
- com.castlabs.abr.gen.BandwidthMeter
-
- com.castlabs.abr.gen.DefaultBandwidthMeter
-
- com.castlabs.android.player.CastlabsBandwidthMeter
-
- All Implemented Interfaces:
Disposable,com.google.android.exoplayer2.upstream.BandwidthMeter,com.google.android.exoplayer2.upstream.TransferListener
public final class CastlabsBandwidthMeter extends com.castlabs.abr.gen.DefaultBandwidthMeter implements com.google.android.exoplayer2.upstream.BandwidthMeter, com.google.android.exoplayer2.upstream.TransferListener, Disposable
This class is aTransferListenerreceiving transfer progress and providing bandwidth metering via common ABRBandwidthMeterand ExoBandwidthMeterinterfaces. The bandwidth metering uses the default implementation of common ABRDefaultBandwidthMeter. The sampling data is pushed viaTransferListener. The granularity of bandwidth metering is based on both the time and byte thresholds.- Since:
- 4.1.7
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classCastlabsBandwidthMeter.BuilderBuilder for a bandwidth meter.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddEventListener(Handler eventHandler, com.google.android.exoplayer2.upstream.BandwidthMeter.EventListener eventListener)voiddispose()longgetBitrateEstimate()longgetLastSegmentDownloadMs()com.google.android.exoplayer2.upstream.TransferListenergetTransferListener()voidkeep()voidonBytesTransferred(com.google.android.exoplayer2.upstream.DataSource source, com.google.android.exoplayer2.upstream.DataSpec dataSpec, boolean isNetwork, int bytes)voidonTransferEnd(com.google.android.exoplayer2.upstream.DataSource source, com.google.android.exoplayer2.upstream.DataSpec dataSpec, boolean isNetwork)voidonTransferInitializing(com.google.android.exoplayer2.upstream.DataSource source, com.google.android.exoplayer2.upstream.DataSpec dataSpec, boolean isNetwork)voidonTransferStart(com.google.android.exoplayer2.upstream.DataSource source, com.google.android.exoplayer2.upstream.DataSpec dataSpec, boolean isNetwork)voidremoveEventListener(com.google.android.exoplayer2.upstream.BandwidthMeter.EventListener eventListener)
-
-
-
Method Detail
-
keep
public void keep()
- Specified by:
keepin interfaceDisposable
-
dispose
public void dispose()
- Specified by:
disposein interfaceDisposable
-
getLastSegmentDownloadMs
public long getLastSegmentDownloadMs()
-
getBitrateEstimate
public long getBitrateEstimate()
- Specified by:
getBitrateEstimatein interfacecom.google.android.exoplayer2.upstream.BandwidthMeter
-
getTransferListener
@Nullable public com.google.android.exoplayer2.upstream.TransferListener getTransferListener()
- Specified by:
getTransferListenerin interfacecom.google.android.exoplayer2.upstream.BandwidthMeter
-
addEventListener
public void addEventListener(Handler eventHandler, com.google.android.exoplayer2.upstream.BandwidthMeter.EventListener eventListener)
- Specified by:
addEventListenerin interfacecom.google.android.exoplayer2.upstream.BandwidthMeter
-
removeEventListener
public void removeEventListener(com.google.android.exoplayer2.upstream.BandwidthMeter.EventListener eventListener)
- Specified by:
removeEventListenerin interfacecom.google.android.exoplayer2.upstream.BandwidthMeter
-
onTransferInitializing
public void onTransferInitializing(com.google.android.exoplayer2.upstream.DataSource source, com.google.android.exoplayer2.upstream.DataSpec dataSpec, boolean isNetwork)- Specified by:
onTransferInitializingin interfacecom.google.android.exoplayer2.upstream.TransferListener
-
onTransferStart
public void onTransferStart(com.google.android.exoplayer2.upstream.DataSource source, com.google.android.exoplayer2.upstream.DataSpec dataSpec, boolean isNetwork)- Specified by:
onTransferStartin interfacecom.google.android.exoplayer2.upstream.TransferListener
-
onBytesTransferred
public void onBytesTransferred(com.google.android.exoplayer2.upstream.DataSource source, com.google.android.exoplayer2.upstream.DataSpec dataSpec, boolean isNetwork, int bytes)- Specified by:
onBytesTransferredin interfacecom.google.android.exoplayer2.upstream.TransferListener
-
onTransferEnd
public void onTransferEnd(com.google.android.exoplayer2.upstream.DataSource source, com.google.android.exoplayer2.upstream.DataSpec dataSpec, boolean isNetwork)- Specified by:
onTransferEndin interfacecom.google.android.exoplayer2.upstream.TransferListener
-
-