Package com.castlabs.android.player
Interface PlayerPlugin
- All Known Implementing Classes:
AmLogicPlayerPlugin,DashPlayerPlugin,HlsPlayerPlugin,IPTVPlayerPlugin
public interface PlayerPlugin
A plugin interface that is used to initialize player instances for different content formats such
as HLS, DASH, or SmoothStreaming.
Instances of this plugin can be registered with
PlayerSDK.register(PlayerPlugin).- Since:
- 3.0.0
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic classPlayerPlugin.DrmInitDataProvider<T extends com.google.android.exoplayer2.offline.FilterableManifest>Abstract class for providing DRM initialization data. -
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.
-
Method Details
-
isFormatSupported
Check if this plugin can create a player for the given content format and DRM configuration.- 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 com.google.android.exoplayer2.RendererCapabilities[] getRendererCapabilities(@NonNull Context context, @Nullable DrmConfiguration drmConfiguration) Retrieve array of supported RendererCapabilities.- Parameters:
context- the contextdrmConfiguration- the drm configuration- Returns:
- RendererCapabilities array supported by the player plugin or null
-
createDrmInitDataProvider
@Nullable PlayerPlugin.DrmInitDataProvider createDrmInitDataProvider(ManifestModifier manifestModifier) Creates aPlayerPlugin.DrmInitDataProviderinstance.- Parameters:
manifestModifier- The manifest modifier.- Returns:
- The created
PlayerPlugin.DrmInitDataProvideror null if not supported.
-
createMediaSource
@NonNull com.google.android.exoplayer2.source.MediaSource createMediaSource(@NonNull PlayerConfig config, boolean attachInitialPositionProvider, @NonNull PlayerController playerController) Create the content media source based on the supplied path and thePlayerController- Parameters:
config- ThePlayerConfigattachInitialPositionProvider- Whether toattach the initial position provider to the media sourceplayerController- ThePlayerControllerinstance- Returns:
- The media source
-
createRendererContainers
@NonNull List<TrackRendererPlugin.TrackRendererContainer> createRendererContainers(@NonNull PlayerController playerController, @Nullable DrmConfiguration drmConfiguration) throws CastlabsPlayerException Create the list of renderer containers based on the suppliedDrmConfigurationandPlayerController- 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
-