Package com.castlabs.android.player
Class ExtendedTrackSelector
- java.lang.Object
-
- com.google.android.exoplayer2.trackselection.TrackSelector
-
- com.castlabs.android.player.ExtendedTrackSelector
-
- All Implemented Interfaces:
DrmEventListener
public class ExtendedTrackSelector extends com.google.android.exoplayer2.trackselection.TrackSelector implements DrmEventListener
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interfaceExtendedTrackSelector.EventListenerInterface which receives Track Selection-related callbacks.classExtendedTrackSelector.ModelSelectionstatic interfaceExtendedTrackSelector.PlayerInfoProvider
-
Constructor Summary
Constructors Constructor Description ExtendedTrackSelector()ExtendedTrackSelector(com.castlabs.android.player.VideoTrackSelection.Factory videoTrackSelectionFactory, ExtendedTrackSelector.PlayerInfoProvider playerInfoProvider, ExtendedTrackSelector.EventListener eventListener, PlayerConfig playerConfig)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description ExtendedTrackSelector.ModelSelectioncreateModel(com.google.android.exoplayer2.trackselection.TrackSelectorResult trackSelectorResult)static voidextractDashThumbnails(com.google.android.exoplayer2.source.dash.manifest.DashManifest dashManifest, com.google.android.exoplayer2.Timeline timeline, PlayerModel playerModel)Extracts the embedded thumbnail tracks in the DASH manifest, and updates the provided player model with them.StringgetPreferredAudioLanguage()Get the preferred audio languageStringgetPreferredSubtitleLanguage()Get the preferred subtitles languagevoidonLicenseKeysChanged()Called when keys are changed e.g.voidonLicenseKeysLoaded()Called when a key was loaded successfullyvoidonLicenseLoadError(int currentAttempt, int maxAttempts, DownloadException downloadException)Called when license load error occurredvoidonSelectionActivated(Object info)com.google.android.exoplayer2.trackselection.TrackSelectorResultselectTracks(com.google.android.exoplayer2.RendererCapabilities[] rendererCapabilities, com.google.android.exoplayer2.source.TrackGroupArray trackGroups, com.google.android.exoplayer2.source.MediaSource.MediaPeriodId periodId, com.google.android.exoplayer2.Timeline timeline, Object manifest)voidsetAudioTrackIndexOverride(TrackIndexOverride trackIndexOverride)Set audio track indices override to be used during audio selectionvoidsetAudioTrackOverride(AudioTrack audioTrack)Set audio track override to be used during audio selectionvoidsetDisabledRendererIndices(List<Integer> disabledRendererIndices)Disable renderers by indices such that the tracks of the corresponding type will not be selectedvoidsetDisplaySize(Point size)voidsetInitialVideoTrackGroupIndex(int initialVideoTrackGroupIndex)Set video track group index override to be used during video selection.voidsetPreselectedAudio(List<TrackIndexOverride> preselectedAudio)Preselect audio tracks available for the selectionvoidsetPreselectedSideloadedTracks(List<SubtitleTrack> sideloadedTracks)Preselect sideloaded subtitle tracks available for the selectionvoidsetPreselectedSubtitle(List<TrackIndexOverride> preselectedSubtitle)Preselect subtitle tracks available for the selectionvoidsetPreselectedVideoQualities(int[] preselectedVideoQualityIndices)Preselect video qualities available for the selectionvoidsetSubtitleTrackIndexOverride(TrackIndexOverride trackIndexOverride)Set subtitle track indices override to be used during subtitle selectionvoidsetSubtitleTrackOverride(SubtitleTrack subtitleTrack)Set subtitle track override to be used during subtitle selectionvoidsetVideoCodecFilter(int videoCodecFilter)Set the video codec filtering policy, one ofSdkConsts.VideoCodecFilter.voidsetVideoFilter(VideoFilterConfiguration contentFilter, VideoFilterConfiguration adsFilter)Sets the video filter for content and ads.voidsetVideoHdEnabled(boolean isHdPlaybackEnabled)Enable or disable the video HD tracks.voidsetVideoMaxResolution(int maxVideoWidth, int maxVideoHeight)Set the max video tracks resolution in pixels such that the video tracks with higher resolutions will not be available for the selectionvoidsetVideoTrackOverride(VideoTrack videoTrack)Set video track override to be used during video selection
-
-
-
Constructor Detail
-
ExtendedTrackSelector
public ExtendedTrackSelector()
-
ExtendedTrackSelector
public ExtendedTrackSelector(@NonNull com.castlabs.android.player.VideoTrackSelection.Factory videoTrackSelectionFactory, @Nullable ExtendedTrackSelector.PlayerInfoProvider playerInfoProvider, @Nullable ExtendedTrackSelector.EventListener eventListener, @Nullable PlayerConfig playerConfig)
-
-
Method Detail
-
setDisplaySize
public void setDisplaySize(@NonNull Point size)
-
setPreselectedVideoQualities
public void setPreselectedVideoQualities(@Nullable int[] preselectedVideoQualityIndices)Preselect video qualities available for the selection- Parameters:
preselectedVideoQualityIndices- video qualities indices ornullto reset previous values
-
setPreselectedAudio
public void setPreselectedAudio(@Nullable List<TrackIndexOverride> preselectedAudio)Preselect audio tracks available for the selection- Parameters:
preselectedAudio- audio indices ornullto reset previous values
-
setPreselectedSubtitle
public void setPreselectedSubtitle(@Nullable List<TrackIndexOverride> preselectedSubtitle)Preselect subtitle tracks available for the selection- Parameters:
preselectedSubtitle- audio indices ornullto reset previous values
-
setPreselectedSideloadedTracks
public void setPreselectedSideloadedTracks(@Nullable List<SubtitleTrack> sideloadedTracks)Preselect sideloaded subtitle tracks available for the selection- Parameters:
sideloadedTracks- audio indices ornullto reset previous values
-
setDisabledRendererIndices
public void setDisabledRendererIndices(@Nullable List<Integer> disabledRendererIndices)Disable renderers by indices such that the tracks of the corresponding type will not be selected- Parameters:
disabledRendererIndices- renderers indices ornullto reset previous values
-
setVideoHdEnabled
public void setVideoHdEnabled(boolean isHdPlaybackEnabled)
Enable or disable the video HD tracks. Note that this has to be called before the initial track selection. The current selection will not be invalidated.- Parameters:
isHdPlaybackEnabled-trueto enable otherwisefalse
-
setVideoMaxResolution
public void setVideoMaxResolution(int maxVideoWidth, int maxVideoHeight)Set the max video tracks resolution in pixels such that the video tracks with higher resolutions will not be available for the selection- Parameters:
maxVideoWidth- max video width in pixelsmaxVideoHeight- max video height in pixels
-
setVideoFilter
public void setVideoFilter(@NonNull VideoFilterConfiguration contentFilter, @Nullable VideoFilterConfiguration adsFilter)Sets the video filter for content and ads. In case theadsFilterisnullthen the content video filter is used for both content and ads tracks filtering- Parameters:
contentFilter- The video filter for contentadsFilter- The video filter for ads ornullto use content filter for ads
-
setVideoCodecFilter
public void setVideoCodecFilter(int videoCodecFilter)
Set the video codec filtering policy, one ofSdkConsts.VideoCodecFilter. Note that this has to be called before the initial track selection. The current selection will not be invalidated.- Parameters:
videoCodecFilter- video codec filter, one ofSdkConsts.VideoCodecFilter
-
setVideoTrackOverride
public void setVideoTrackOverride(@Nullable VideoTrack videoTrack)Set video track override to be used during video selection- Parameters:
videoTrack- video track override
-
onLicenseKeysLoaded
public void onLicenseKeysLoaded()
Description copied from interface:DrmEventListenerCalled when a key was loaded successfully- Specified by:
onLicenseKeysLoadedin interfaceDrmEventListener
-
onLicenseKeysChanged
public void onLicenseKeysChanged()
Description copied from interface:DrmEventListenerCalled when keys are changed e.g. when license is renewed or expires- Specified by:
onLicenseKeysChangedin interfaceDrmEventListener
-
onLicenseLoadError
public void onLicenseLoadError(int currentAttempt, int maxAttempts, @Nullable DownloadException downloadException)Description copied from interface:DrmEventListenerCalled when license load error occurred- Specified by:
onLicenseLoadErrorin interfaceDrmEventListener- Parameters:
currentAttempt- The current loading attemptmaxAttempts- The max number of attemptsdownloadException- The download exception
-
setInitialVideoTrackGroupIndex
public void setInitialVideoTrackGroupIndex(int initialVideoTrackGroupIndex)
Set video track group index override to be used during video selection. Note that this has to be called before the initial track selection. The current selection will not be invalidated.- Parameters:
initialVideoTrackGroupIndex- video track group index override
-
setAudioTrackOverride
public void setAudioTrackOverride(@Nullable AudioTrack audioTrack)Set audio track override to be used during audio selection- Parameters:
audioTrack- audio track override
-
setAudioTrackIndexOverride
public void setAudioTrackIndexOverride(@Nullable TrackIndexOverride trackIndexOverride)Set audio track indices override to be used during audio selection- Parameters:
trackIndexOverride- audio track indices override
-
setSubtitleTrackOverride
public void setSubtitleTrackOverride(@Nullable SubtitleTrack subtitleTrack)Set subtitle track override to be used during subtitle selection- Parameters:
subtitleTrack- subtitle track override
-
setSubtitleTrackIndexOverride
public void setSubtitleTrackIndexOverride(@Nullable TrackIndexOverride trackIndexOverride)Set subtitle track indices override to be used during subtitle selection- Parameters:
trackIndexOverride- subtitle track indices override
-
getPreferredAudioLanguage
@Nullable public String getPreferredAudioLanguage()
Get the preferred audio language- Returns:
- preferred audio language
-
getPreferredSubtitleLanguage
@Nullable public String getPreferredSubtitleLanguage()
Get the preferred subtitles language- Returns:
- preferred subtitles language
-
selectTracks
@NonNull public com.google.android.exoplayer2.trackselection.TrackSelectorResult selectTracks(com.google.android.exoplayer2.RendererCapabilities[] rendererCapabilities, com.google.android.exoplayer2.source.TrackGroupArray trackGroups, com.google.android.exoplayer2.source.MediaSource.MediaPeriodId periodId, com.google.android.exoplayer2.Timeline timeline, Object manifest) throws com.google.android.exoplayer2.ExoPlaybackException- Specified by:
selectTracksin classcom.google.android.exoplayer2.trackselection.TrackSelector- Throws:
com.google.android.exoplayer2.ExoPlaybackException
-
onSelectionActivated
public void onSelectionActivated(Object info)
- Specified by:
onSelectionActivatedin classcom.google.android.exoplayer2.trackselection.TrackSelector
-
createModel
@Nullable public ExtendedTrackSelector.ModelSelection createModel(@NonNull com.google.android.exoplayer2.trackselection.TrackSelectorResult trackSelectorResult)
-
extractDashThumbnails
public static void extractDashThumbnails(com.google.android.exoplayer2.source.dash.manifest.DashManifest dashManifest, com.google.android.exoplayer2.Timeline timeline, PlayerModel playerModel)Extracts the embedded thumbnail tracks in the DASH manifest, and updates the provided player model with them.- Parameters:
dashManifest- the DASH manifest which contains the thumbnail tracks to extracttimeline- timeline representing provided manifestplayerModel- player model to update with thumbnail tracks
-
-