static UnableToCreatePlayerException unhandledDrmType(DrmType drmType) { return new UnableToCreatePlayerException("Unhandled DrmType: " + drmType); }
private void assertThatApiLevelIsJellyBeanEighteenOrAbove(DrmType drmType) { if (androidDeviceVersion.isJellyBeanEighteenOrAbove()) { return; } throw UnableToCreatePlayerException.deviceDoesNotMeetTargetApiException( drmType, Build.VERSION_CODES.JELLY_BEAN_MR2, androidDeviceVersion ); }
private NoPlayer createPlayerForType(PlayerType playerType, DrmType drmType, DrmHandler drmHandler, boolean downgradeSecureDecoder) { switch (playerType) { case MEDIA_PLAYER: return noPlayerMediaPlayerCreator.createMediaPlayer(context); case EXO_PLAYER: try { DrmSessionCreator drmSessionCreator = drmSessionCreatorFactory.createFor(drmType, drmHandler); return noPlayerExoPlayerCreator.createExoPlayer(context, drmSessionCreator, downgradeSecureDecoder); } catch (DrmSessionCreatorException exception) { throw new UnableToCreatePlayerException(exception); } default: throw UnableToCreatePlayerException.unhandledPlayerType(playerType); } } }
NoPlayer create(DrmType drmType, DrmHandler drmHandler, boolean downgradeSecureDecoder) { for (PlayerType player : prioritizedPlayerTypes) { if (player.supports(drmType)) { return createPlayerForType(player, drmType, drmHandler, downgradeSecureDecoder); } } throw UnableToCreatePlayerException.unhandledDrmType(drmType); }
static UnableToCreatePlayerException unhandledPlayerType(PlayerType playerType) { return new UnableToCreatePlayerException("Unhandled player type: " + playerType.name()); }
public static UnableToCreatePlayerException deviceDoesNotMeetTargetApiException(DrmType drmType, int targetApiLevel, AndroidDeviceVersion actualApiLevel) { return new UnableToCreatePlayerException( "Device must be target: " + targetApiLevel + " but was: " + actualApiLevel.sdkInt() + " for DRM type: " + drmType.name() ); }