-
- All Implemented Interfaces:
-
com.google.android.exoplayer2.upstream.BandwidthMeter
,com.google.android.exoplayer2.upstream.TransferListener
public class PlayerBandwidthMeter implements BandwidthMeter, TransferListener
Provides an implementation of BandwidthMeter that tracks the total number of bytes transferred. By default all work will be delegated to DefaultBandwidthMeter. The caller may override the delegate to another instance any time.
-
-
Field Summary
Fields Modifier and Type Field Description public long
NO_ESTIMATE
private final AtomicReference<BandwidthMeter>
delegate
-
Constructor Summary
Constructors Constructor Description PlayerBandwidthMeter()
Constructs a new instance of the bandwidth meter that will use DefaultBandwidthMeter internally to delegate the work. PlayerBandwidthMeter(Handler eventHandler, BandwidthMeter.EventListener eventListener)
Constructs a new instance of the bandwidth meter that will use DefaultBandwidthMeter internally to delegate the work. PlayerBandwidthMeter(Context context, Handler eventHandler, BandwidthMeter.EventListener eventListener)
Constructs a new instance of the bandwidth meter that will use DefaultBandwidthMeter internally to delegate the work. PlayerBandwidthMeter(BandwidthMeter bandwidthMeter)
Constructs a new instance of the bandwidth meter that will use given bandwidth meter todelegate the work.
-
Method Summary
Modifier and Type Method Description void
setDelegate(@Nullable() BandwidthMeter bandwidthMeter)
Sets reference to actual bandwidth meter that must be used to handle bitrate estimatecalculations. long
getBitrateEstimate()
TransferListener
getTransferListener()
void
addEventListener(Handler eventHandler, BandwidthMeter.EventListener eventListener)
void
removeEventListener(BandwidthMeter.EventListener eventListener)
void
onTransferInitializing(DataSource source, DataSpec dataSpec, boolean isNetwork)
void
onTransferStart(DataSource source, DataSpec dataSpec, boolean isNetwork)
void
onBytesTransferred(DataSource source, DataSpec dataSpec, boolean isNetwork, int bytesTransferred)
void
onTransferEnd(DataSource source, DataSpec dataSpec, boolean isNetwork)
PlayerBandwidthMeter
resetTotalBytesTransferred()
Resets the counter for total number of bytes transferred. -
Methods inherited from class com.google.android.exoplayer2.upstream.BandwidthMeter
addEventListener, getBitrateEstimate, getTimeToFirstByteEstimateUs, getTransferListener, removeEventListener
-
Methods inherited from class com.google.android.exoplayer2.upstream.TransferListener
onBytesTransferred, onTransferEnd, onTransferInitializing, onTransferStart
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
-
Constructor Detail
-
PlayerBandwidthMeter
PlayerBandwidthMeter()
Constructs a new instance of the bandwidth meter that will use DefaultBandwidthMeter internally to delegate the work.
-
PlayerBandwidthMeter
PlayerBandwidthMeter(Handler eventHandler, BandwidthMeter.EventListener eventListener)
Constructs a new instance of the bandwidth meter that will use DefaultBandwidthMeter internally to delegate the work.- Parameters:
eventHandler
- reference to the event handler, if any.eventListener
- reference to the event listener, if any.
-
PlayerBandwidthMeter
PlayerBandwidthMeter(Context context, Handler eventHandler, BandwidthMeter.EventListener eventListener)
Constructs a new instance of the bandwidth meter that will use DefaultBandwidthMeter internally to delegate the work.- Parameters:
eventHandler
- reference to the event handler, if any.eventListener
- reference to the event listener, if any.
-
PlayerBandwidthMeter
PlayerBandwidthMeter(BandwidthMeter bandwidthMeter)
Constructs a new instance of the bandwidth meter that will use given bandwidth meter todelegate the work.- Parameters:
bandwidthMeter
- reference to the bandwidth meter to be used as delegate.
-
-
Method Detail
-
setDelegate
void setDelegate(@Nullable() BandwidthMeter bandwidthMeter)
Sets reference to actual bandwidth meter that must be used to handle bitrate estimatecalculations.
-
getBitrateEstimate
long getBitrateEstimate()
-
getTransferListener
@Nullable() TransferListener getTransferListener()
-
addEventListener
void addEventListener(Handler eventHandler, BandwidthMeter.EventListener eventListener)
-
removeEventListener
void removeEventListener(BandwidthMeter.EventListener eventListener)
-
onTransferInitializing
void onTransferInitializing(DataSource source, DataSpec dataSpec, boolean isNetwork)
-
onTransferStart
void onTransferStart(DataSource source, DataSpec dataSpec, boolean isNetwork)
-
onBytesTransferred
void onBytesTransferred(DataSource source, DataSpec dataSpec, boolean isNetwork, int bytesTransferred)
-
onTransferEnd
void onTransferEnd(DataSource source, DataSpec dataSpec, boolean isNetwork)
-
resetTotalBytesTransferred
PlayerBandwidthMeter resetTotalBytesTransferred()
Resets the counter for total number of bytes transferred.
-
-
-
-