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
the
onTrasferXXX
methods explicitly.- Since:
- 4.2.6
-
Nested Class Summary
Nested classes/interfaces inherited from interface com.google.android.exoplayer2.upstream.BandwidthMeter
com.google.android.exoplayer2.upstream.BandwidthMeter.EventListener
-
Method Summary
Modifier and TypeMethodDescriptionvoid
addEventListener
(Handler eventHandler, com.google.android.exoplayer2.upstream.BandwidthMeter.EventListener eventListener) long
com.google.android.exoplayer2.upstream.BandwidthMeter
com.google.android.exoplayer2.upstream.TransferListener
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 Details
-
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)
-