Package com.castlabs.android.player
Class HlsPlayerPlugin
java.lang.Object
com.castlabs.android.player.HlsPlayerPlugin
- All Implemented Interfaces:
PlayerPlugin
Plugin that provides HLS playback functionality.
This plugin implements the PlayerPlugin interface to handle HLS content playback,
including support for HLS interstitials and DRM.
-
Nested Class Summary
Nested classes/interfaces inherited from interface com.castlabs.android.player.PlayerPlugin
PlayerPlugin.DrmInitDataProvider<T extends com.google.android.exoplayer2.offline.FilterableManifest> -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptioncreateDrmInitDataProvider(ManifestModifier manifestModifier) Creates aPlayerPlugin.DrmInitDataProviderinstance.com.google.android.exoplayer2.source.MediaSourcecreateMediaSource(PlayerConfig config, boolean attachInitialPositionProvider, PlayerController playerController) Create the content media source based on the supplied path and thePlayerControllercreateRendererContainers(PlayerController playerController, DrmConfiguration drmConfiguration) Create the list of renderer containers based on the suppliedDrmConfigurationandPlayerControllercom.google.android.exoplayer2.RendererCapabilities[]getRendererCapabilities(Context context, DrmConfiguration drmConfiguration) Retrieve array of supported RendererCapabilities.booleanisFormatSupported(int format, DrmConfiguration configuration) Check if this plugin can create a player for the given content format and DRM configuration.
-
Constructor Details
-
HlsPlayerPlugin
public HlsPlayerPlugin()Default constructor for HlsPlayerPlugin.
-
-
Method Details
-
isFormatSupported
Description copied from interface:PlayerPluginCheck if this plugin can create a player for the given content format and DRM configuration.- Specified by:
isFormatSupportedin interfacePlayerPlugin- Parameters:
format- the content format (one ofSdkConsts.CONTENT_TYPE_UNKNOWN,SdkConsts.CONTENT_TYPE_DASH,SdkConsts.CONTENT_TYPE_HLS,SdkConsts.CONTENT_TYPE_SMOOTHSTREAMING, orSdkConsts.CONTENT_TYPE_MP4)configuration- the drm configuration- Returns:
- true if this plugin can create a player for the given content format and drm configuration
-
getRendererCapabilities
@Nullable public com.google.android.exoplayer2.RendererCapabilities[] getRendererCapabilities(@NonNull Context context, @Nullable DrmConfiguration drmConfiguration) Description copied from interface:PlayerPluginRetrieve array of supported RendererCapabilities.- Specified by:
getRendererCapabilitiesin interfacePlayerPlugin- Parameters:
context- the contextdrmConfiguration- the drm configuration- Returns:
- RendererCapabilities array supported by the player plugin or null
-
createDrmInitDataProvider
@Nullable public PlayerPlugin.DrmInitDataProvider createDrmInitDataProvider(ManifestModifier manifestModifier) Description copied from interface:PlayerPluginCreates aPlayerPlugin.DrmInitDataProviderinstance.- Specified by:
createDrmInitDataProviderin interfacePlayerPlugin- Parameters:
manifestModifier- The manifest modifier.- Returns:
- The created
PlayerPlugin.DrmInitDataProvideror null if not supported.
-
createMediaSource
@NonNull public com.google.android.exoplayer2.source.MediaSource createMediaSource(@NonNull PlayerConfig config, boolean attachInitialPositionProvider, @NonNull PlayerController playerController) Description copied from interface:PlayerPluginCreate the content media source based on the supplied path and thePlayerController- Specified by:
createMediaSourcein interfacePlayerPlugin- Parameters:
config- ThePlayerConfigattachInitialPositionProvider- Whether toattach the initial position provider to the media sourceplayerController- ThePlayerControllerinstance- Returns:
- The media source
-
createRendererContainers
@NonNull public List<TrackRendererPlugin.TrackRendererContainer> createRendererContainers(@NonNull PlayerController playerController, @Nullable DrmConfiguration drmConfiguration) throws CastlabsPlayerException Description copied from interface:PlayerPluginCreate the list of renderer containers based on the suppliedDrmConfigurationandPlayerController- Specified by:
createRendererContainersin interfacePlayerPlugin- Parameters:
playerController- ThePlayerControllerinstancedrmConfiguration- TheDrmConfiguration, might benull- Returns:
- The list of renderer containers
- Throws:
CastlabsPlayerException- when render containers can not be created or an error occurs
-