mirror of
https://github.com/samsonjs/media.git
synced 2026-04-27 15:07:40 +00:00
Add ad insertion discontinuity reason.
This it to distinguish between actual period transitions and the transitions occuring to and from ads within one timeline period. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=181606023
This commit is contained in:
parent
214d46d957
commit
f977ba256f
4 changed files with 24 additions and 13 deletions
|
|
@ -9,6 +9,10 @@
|
||||||
* Add optional parameter to `stop` to reset the player when stopping.
|
* Add optional parameter to `stop` to reset the player when stopping.
|
||||||
* Add a reason to `EventListener.onTimelineChanged` to distinguish between
|
* Add a reason to `EventListener.onTimelineChanged` to distinguish between
|
||||||
initial preparation, reset and dynamic updates.
|
initial preparation, reset and dynamic updates.
|
||||||
|
* Add `Player.DISCONTINUITY_REASON_AD_INSERTION` to the possible reasons
|
||||||
|
reported in `Eventlistener.onPositionDiscontinuity` to distinguish
|
||||||
|
transitions to and from ads within one period from transitions between
|
||||||
|
periods.
|
||||||
* Replaced `ExoPlayer.sendMessages` with `ExoPlayer.createMessage` to allow
|
* Replaced `ExoPlayer.sendMessages` with `ExoPlayer.createMessage` to allow
|
||||||
more customization of the message. Now supports setting a message delivery
|
more customization of the message. Now supports setting a message delivery
|
||||||
playback position and/or a delivery handler.
|
playback position and/or a delivery handler.
|
||||||
|
|
|
||||||
|
|
@ -528,6 +528,8 @@ import java.util.Locale;
|
||||||
return "SEEK";
|
return "SEEK";
|
||||||
case Player.DISCONTINUITY_REASON_SEEK_ADJUSTMENT:
|
case Player.DISCONTINUITY_REASON_SEEK_ADJUSTMENT:
|
||||||
return "SEEK_ADJUSTMENT";
|
return "SEEK_ADJUSTMENT";
|
||||||
|
case Player.DISCONTINUITY_REASON_AD_INSERTION:
|
||||||
|
return "AD_INSERTION";
|
||||||
case Player.DISCONTINUITY_REASON_INTERNAL:
|
case Player.DISCONTINUITY_REASON_INTERNAL:
|
||||||
return "INTERNAL";
|
return "INTERNAL";
|
||||||
default:
|
default:
|
||||||
|
|
|
||||||
|
|
@ -1448,11 +1448,15 @@ import java.util.Collections;
|
||||||
// If we advance more than one period at a time, notify listeners after each update.
|
// If we advance more than one period at a time, notify listeners after each update.
|
||||||
maybeNotifyPlaybackInfoChanged();
|
maybeNotifyPlaybackInfoChanged();
|
||||||
}
|
}
|
||||||
|
int discontinuityReason =
|
||||||
|
playingPeriodHolder.info.isLastInTimelinePeriod
|
||||||
|
? Player.DISCONTINUITY_REASON_PERIOD_TRANSITION
|
||||||
|
: Player.DISCONTINUITY_REASON_AD_INSERTION;
|
||||||
playingPeriodHolder.release();
|
playingPeriodHolder.release();
|
||||||
setPlayingPeriodHolder(playingPeriodHolder.next);
|
setPlayingPeriodHolder(playingPeriodHolder.next);
|
||||||
playbackInfo = playbackInfo.fromNewPosition(playingPeriodHolder.info.id,
|
playbackInfo = playbackInfo.fromNewPosition(playingPeriodHolder.info.id,
|
||||||
playingPeriodHolder.info.startPositionUs, playingPeriodHolder.info.contentPositionUs);
|
playingPeriodHolder.info.startPositionUs, playingPeriodHolder.info.contentPositionUs);
|
||||||
playbackInfoUpdate.setPositionDiscontinuity(Player.DISCONTINUITY_REASON_PERIOD_TRANSITION);
|
playbackInfoUpdate.setPositionDiscontinuity(discontinuityReason);
|
||||||
updatePlaybackPositions();
|
updatePlaybackPositions();
|
||||||
advancedPlayingPeriod = true;
|
advancedPlayingPeriod = true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -251,31 +251,32 @@ public interface Player {
|
||||||
*/
|
*/
|
||||||
int REPEAT_MODE_ALL = 2;
|
int REPEAT_MODE_ALL = 2;
|
||||||
|
|
||||||
/**
|
/** Reasons for position discontinuities. */
|
||||||
* Reasons for position discontinuities.
|
|
||||||
*/
|
|
||||||
@Retention(RetentionPolicy.SOURCE)
|
@Retention(RetentionPolicy.SOURCE)
|
||||||
@IntDef({DISCONTINUITY_REASON_PERIOD_TRANSITION, DISCONTINUITY_REASON_SEEK,
|
@IntDef({
|
||||||
DISCONTINUITY_REASON_SEEK_ADJUSTMENT, DISCONTINUITY_REASON_INTERNAL})
|
DISCONTINUITY_REASON_PERIOD_TRANSITION,
|
||||||
|
DISCONTINUITY_REASON_SEEK,
|
||||||
|
DISCONTINUITY_REASON_SEEK_ADJUSTMENT,
|
||||||
|
DISCONTINUITY_REASON_AD_INSERTION,
|
||||||
|
DISCONTINUITY_REASON_INTERNAL
|
||||||
|
})
|
||||||
public @interface DiscontinuityReason {}
|
public @interface DiscontinuityReason {}
|
||||||
/**
|
/**
|
||||||
* Automatic playback transition from one period in the timeline to the next. The period index may
|
* Automatic playback transition from one period in the timeline to the next. The period index may
|
||||||
* be the same as it was before the discontinuity in case the current period is repeated.
|
* be the same as it was before the discontinuity in case the current period is repeated.
|
||||||
*/
|
*/
|
||||||
int DISCONTINUITY_REASON_PERIOD_TRANSITION = 0;
|
int DISCONTINUITY_REASON_PERIOD_TRANSITION = 0;
|
||||||
/**
|
/** Seek within the current period or to another period. */
|
||||||
* Seek within the current period or to another period.
|
|
||||||
*/
|
|
||||||
int DISCONTINUITY_REASON_SEEK = 1;
|
int DISCONTINUITY_REASON_SEEK = 1;
|
||||||
/**
|
/**
|
||||||
* Seek adjustment due to being unable to seek to the requested position or because the seek was
|
* Seek adjustment due to being unable to seek to the requested position or because the seek was
|
||||||
* permitted to be inexact.
|
* permitted to be inexact.
|
||||||
*/
|
*/
|
||||||
int DISCONTINUITY_REASON_SEEK_ADJUSTMENT = 2;
|
int DISCONTINUITY_REASON_SEEK_ADJUSTMENT = 2;
|
||||||
/**
|
/** Discontinuity to or from an ad within one period in the timeline. */
|
||||||
* Discontinuity introduced internally by the source.
|
int DISCONTINUITY_REASON_AD_INSERTION = 3;
|
||||||
*/
|
/** Discontinuity introduced internally by the source. */
|
||||||
int DISCONTINUITY_REASON_INTERNAL = 3;
|
int DISCONTINUITY_REASON_INTERNAL = 4;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Reasons for timeline and/or manifest changes.
|
* Reasons for timeline and/or manifest changes.
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue