Package com.castlabs.android.player
Class BandwidthMeterWrapper
- java.lang.Object
-
- com.castlabs.android.player.BandwidthMeterWrapper
-
- All Implemented Interfaces:
com.google.android.exoplayer2.upstream.BandwidthMeter,com.google.android.exoplayer2.upstream.TransferListener
public class BandwidthMeterWrapper extends Object implements com.google.android.exoplayer2.upstream.BandwidthMeter, com.google.android.exoplayer2.upstream.TransferListener
Wrapper implementation around the bandwidth meter. We need to allow algorithms and also some plugins to bring their own bandwidth meter. This class is exposed to the track selector as well as to plugin so they can either set a bandwidth meter delegate and/or disable tracking of transfers entirely. In the latter case, the implementations are expected to call theonTrasferXXXmethods explicitly.- Since:
- 4.2.6
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddEventListener(Handler eventHandler, com.google.android.exoplayer2.upstream.BandwidthMeter.EventListener eventListener)longgetBitrateEstimate()com.google.android.exoplayer2.upstream.BandwidthMetergetDelegate()com.google.android.exoplayer2.upstream.TransferListenergetTransferListener()Return the transfer listener that will delegate to a sub meter if the transfer listener support is enabled.voidlogTransferInfo(boolean logTransferInfo)voidonBytesTransferred(com.google.android.exoplayer2.upstream.DataSource source, com.google.android.exoplayer2.upstream.DataSpec dataSpec, boolean isNetwork, int bytesTransferred)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)voidsetDelegate(com.google.android.exoplayer2.upstream.BandwidthMeter delegate)Set the delegate or null
-
-
-
Method Detail
-
getBitrateEstimate
public long getBitrateEstimate()
- Specified by:
getBitrateEstimatein interfacecom.google.android.exoplayer2.upstream.BandwidthMeter
-
getTransferListener
@Nullable public com.google.android.exoplayer2.upstream.TransferListener getTransferListener()
Return the transfer listener that will delegate to a sub meter if the transfer listener support is enabled.- Specified by:
getTransferListenerin interfacecom.google.android.exoplayer2.upstream.BandwidthMeter- Returns:
- The transfer listener or null
-
setDelegate
public void setDelegate(@Nullable com.google.android.exoplayer2.upstream.BandwidthMeter delegate)Set the delegate or null Note that setting external delegate is valid only forAbrConfiguration.METHOD_EXO- Parameters:
delegate- The delegate
-
getDelegate
@Nullable public com.google.android.exoplayer2.upstream.BandwidthMeter getDelegate()
- Returns:
- The delegate or null
-
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 bytesTransferred)- 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
-
logTransferInfo
public void logTransferInfo(boolean logTransferInfo)
-
-