26. class AbemaBandwidthMeter(
private val default: DefaultBandwidthMeter
) : BandwidthMeter by default, TransferListener<Any> by default {
private var limitBitrate = Long.MAX_VALUE
override fun getBitrateEstimate(): Long {
return Math.min(default.bitrateEstimate, limitBitrate)
}
fun setLimitBitrate(limitBitrate: Long) {
this.limitBitrate = limitBitrate
}
}
27. class AbemaBandwidthMeter(
private val default: DefaultBandwidthMeter
) : BandwidthMeter by default, TransferListener<Any> by default {
private var limitBitrate = Long.MAX_VALUE
override fun getBitrateEstimate(): Long {
return Math.min(default.bitrateEstimate, limitBitrate)
}
fun setLimitBitrate(limitBitrate: Long) {
this.limitBitrate = limitBitrate
}
}
override fun getBitrateEstimate(): Long {
return Math.min(default.bitrateEstimate, limitBitrate)
}
46. private fun stopVideo() {
…
sendPlayerLog();
}
private fun sendPlayerLog() {
// send log here
}
private fun pauseVideo() {
…
sendPlayerLog();
}
private val programMetaChanged = { meta ->
if (shouldSend) sendPlayerLog()
};
47. private fun stopVideo() {
…
sendPlayerLog();
}
private fun sendPlayerLog() {
// send log here
}}
private fun pauseVideo() {
…
sendPlayerLog();
}
private val programMetaChanged = { meta ->
if (shouldSend) sendPlayerLog()
};
✘
✘
48. private fun sendPlayerLog() {
// send log here
}}
@Override
public void onCreate(Bundle b) {
super.onCreate(b);
…
val logTracker = PlayerLogTracker(…)
player.addTrackers(
logTracker,
…
)
}
class PlayerLogTracker(
metadataDetector: MetadataDetector,
stateDetector: PlaybackStateDetector,
sendPlayerLog: () -> Unit
) {
// call sendPlayerLog()
}
49. private fun sendPlayerLog() {
// send log here
}
@Override
public void onCreate(Bundle b) {
super.onCreate(b);
…
val logTracker = PlayerLogTracker(…)
player.addTrackers(
logTracker,
…
)
}
class PlayerLogTracker(
metadataDetector: MetadataDetector,
stateDetector: PlaybackStateDetector,
sendPlayerLog: () -> Unit
) {
// call sendPlayerLog()
}
✔
✔
✔