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 theonTrasferXXX
methods explicitly.- Since:
- 4.2.6
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addEventListener(Handler eventHandler, com.google.android.exoplayer2.upstream.BandwidthMeter.EventListener eventListener)
long
getBitrateEstimate()
com.google.android.exoplayer2.upstream.BandwidthMeter
getDelegate()
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.void
logTransferInfo(boolean logTransferInfo)
void
onBytesTransferred(com.google.android.exoplayer2.upstream.DataSource source, com.google.android.exoplayer2.upstream.DataSpec dataSpec, boolean isNetwork, int bytesTransferred)
void
onTransferEnd(com.google.android.exoplayer2.upstream.DataSource source, com.google.android.exoplayer2.upstream.DataSpec dataSpec, boolean isNetwork)
void
onTransferInitializing(com.google.android.exoplayer2.upstream.DataSource source, com.google.android.exoplayer2.upstream.DataSpec dataSpec, boolean isNetwork)
void
onTransferStart(com.google.android.exoplayer2.upstream.DataSource source, com.google.android.exoplayer2.upstream.DataSpec dataSpec, boolean isNetwork)
void
removeEventListener(com.google.android.exoplayer2.upstream.BandwidthMeter.EventListener eventListener)
void
setDelegate(com.google.android.exoplayer2.upstream.BandwidthMeter delegate)
Set the delegate or null
-
-
-
Method Detail
-
getBitrateEstimate
public long getBitrateEstimate()
- Specified by:
getBitrateEstimate
in 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:
getTransferListener
in 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:
addEventListener
in interfacecom.google.android.exoplayer2.upstream.BandwidthMeter
-
removeEventListener
public void removeEventListener(com.google.android.exoplayer2.upstream.BandwidthMeter.EventListener eventListener)
- Specified by:
removeEventListener
in 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:
onTransferInitializing
in 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:
onTransferStart
in 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:
onBytesTransferred
in 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:
onTransferEnd
in interfacecom.google.android.exoplayer2.upstream.TransferListener
-
logTransferInfo
public void logTransferInfo(boolean logTransferInfo)
-
-