Skip to content

Releases: kaltura/playkit-android-ima

v4.8.1

17 Jun 06:25
Compare
Choose a tag to compare

Changes from v4.8.0

Plugin Playkit Support

v4.8.1

Bug Fixes

  • FEC-10214 | fixed forceSinglePlayerEngine logic

  • FEC-10201 | Add currentAdPosition (sec) playload to AD_PROGRESS event

  • FEC-10126 | FriendlyView is not allowed to be empty string so adding default description which is not empty string if it was passed in correctly

gradle
  • implementation 'com.kaltura.playkit:imaplugin:4.8.1'

v4.8.0

21 May 15:29
Compare
Choose a tag to compare

Changes from v4.7.0

Plugin Playkit Support

v4.8.0

Upgrades

  • FEC-9699 | IMA SDK Upgrade 3.11.2 -> 3.18.1

BREAKING CHANGES

setControlsOverlayList which receives list of views is not being used anymore

instead:
setFriendlyObstructions(pkFriendlyObstructionList)
should used both in plugin creation and change media

Where PKFriendlyObstruction is SDK's object that wraps FriendlyObstruction of IMA SDK
Relevant both for IMA and IMADAI

Note: PKFriendlyObstruction object that will be passed to the config with null View will be ignored

Example IMA:

Before:

List<View> controlsOverlayList = new ArrayList<>();
        controlsOverlayList.add(view1);
        controlsOverlayList.add(view2);
        controlsOverlayList.add(view3);

       return new IMAConfig().setAdTagUrl(adTagUrl).setControlsOverlayList(controlsOverlayList).setVideoMimeTypes(videoMimeTypes).setAlwaysStartWithPreroll(true).setAdLoadTimeOut(8);

After:

 PKFriendlyObstruction friendlyObstructionView1 = new PKFriendlyObstruction(view1, FriendlyObstructionPurpose.VIDEO_CONTROLS, "description1");
        PKFriendlyObstruction friendlyObstructionView2 = new PKFriendlyObstruction(view2, FriendlyObstructionPurpose.NOT_VISIBLE, "description2");
        PKFriendlyObstruction friendlyObstructionView3 = new PKFriendlyObstruction(view3, FriendlyObstructionPurpose.OTHER, "description3");

        List<PKFriendlyObstruction> pkFriendlyObstructionList = new ArrayList<>();
        pkFriendlyObstructionList.add(friendlyObstructionView1);
        pkFriendlyObstructionList.add(friendlyObstructionView2);
        pkFriendlyObstructionList.add(friendlyObstructionView3);

return new IMAConfig().setAdTagUrl(adTagUrl).setFriendlyObstructions(pkFriendlyObstructionList).setVideoMimeTypes(videoMimeTypes).setAlwaysStartWithPreroll(true).setAdLoadTimeOut(8);

Example IMADAI

Before:

        IMADAIConfig liveDAICOnfig = IMADAIConfig.getLiveIMADAIConfig(assetTitle,
                assetKey,
                apiKey,
                streamFormat,
                licenseUrl).setAlwaysStartWithPreroll(true);

        List<View> controlsOverlayList = new ArrayList<>();
        controlsOverlayList.add(view1);
        controlsOverlayList.add(view2);
        controlsOverlayList.add(view3);

        liveDAICOnfig.setControlsOverlayList(controlsOverlayList);
        return liveDAICOnfig;

After

        IMADAIConfig liveDAICOnfig = IMADAIConfig.getLiveIMADAIConfig(assetTitle,
                assetKey,
                apiKey,
                streamFormat,
                licenseUrl).setAlwaysStartWithPreroll(true);
        
        PKFriendlyObstruction friendlyObstructionView1 = new PKFriendlyObstruction(view1, FriendlyObstructionPurpose.VIDEO_CONTROLS, "description1");
        PKFriendlyObstruction friendlyObstructionView2 = new PKFriendlyObstruction(view2, FriendlyObstructionPurpose.NOT_VISIBLE, "description2");
        PKFriendlyObstruction friendlyObstructionView3 = new PKFriendlyObstruction(view3, FriendlyObstructionPurpose.OTHER, "description3");

        List<PKFriendlyObstruction> pkFriendlyObstructionList = new ArrayList<>();
        pkFriendlyObstructionList.add(friendlyObstructionView1);
        pkFriendlyObstructionList.add(friendlyObstructionView2);
        pkFriendlyObstructionList.add(friendlyObstructionView3);
        
        liveDAICOnfig.setFriendlyObstructions(pkFriendlyObstructionList);

Bug Fixes

  • FEC-10061 | Null protection for mediaFormat while setting mediaFormat for PKMediaSource
gradle
  • implementation 'com.kaltura.playkit:imaplugin:4.8.0'

v4.7.0

26 Apr 16:26
Compare
Choose a tag to compare

Changes from v4.6.0

Plugin Playkit Support

v4.7.0

  • FEC-2765 Add support in ExoPlayer 2.11.3

Bug Fixes

  • FEC-9954 Add missing enableFocusSkipButton TV configuration in AdsRenderingSettings in IMA and IMADAI , add playerType & playerVersion configuration to IMADAIConfig

  • FEC-9956 - autoplay does not work in case of IMA Plugin ad failure

  • FEC-9944 Audio was playing with content audio/video on skipping ad.

  • FEC-9697 Add Missing IMADAI Parameters

Application can use the newly added optional apis in the following way. That's why these are not the part of constructor or factory method.

Map<String, String> adTagParamsMap = new HashMap<>();
adTagParamsMap.put("iu","1234"); // Example

return IMADAIConfig.getVodIMADAIConfig(assetTitle,
                contentSourceId,
                videoId,
                apiKey,
                streamFormat,
                licenseUrl)
                .setAdTagParams(adTagParamsMap)
                .setAuthToken("AuthToken")
                .setStreamActivityMonitorId("MonitorId");
  • FEC-9933 | SendAdClickedEvent - add npe protection in case ad object is null

  • FEC-9733 | Add protection for for adConfig object for isLiveDAI()

gradle
  • implementation 'com.kaltura.playkit:imaplugin:4.7.0'

v4.6.1

06 Apr 08:56
Compare
Choose a tag to compare

Changes from v4.6.0

Plugin Playkit Support

v4.6.0

Bug Fixes

  • FEC-9719 - ad audio plays without ad video frame with Content Video and audio after skip first ad in pod
gradle
  • implementation 'com.kaltura.playkit:imaplugin:4.6.1'

v4.6.0

23 Mar 11:49
Compare
Choose a tag to compare

Changes from v4.5.0

Plugin Playkit Support

v4.6.0

Bug Fixes

  • FEC-9733 | Protection for for adConfig object for isLiveDAI()
gradle
  • implementation 'com.kaltura.playkit:imaplugin:4.6.0'

v4.5.0

21 Jan 10:05
Compare
Choose a tag to compare

Changes from v4.4.1

Plugin Playkit Support

v4.5.0

Bug Fixes

  • FEM-2749 | Apply Companion ads slots clear only if needed
gradle
  • implementation 'com.kaltura.playkit:imaplugin:4.5.0'

v4.4.1

10 Dec 14:29
Compare
Choose a tag to compare

Changes from v4.4.0

  • FEM-2749 | protect npe inside IMA SDK in case clearing companion ads slot while it is not null
gradle
  • implementation 'com.kaltura.playkit:imaplugin:4.4.1'

v4.4.0

01 Dec 14:37
Compare
Choose a tag to compare

Changes from v4.3.1

Plugin Playkit Support

v4.4.0

Bug Fixes

  • FEM-2708 | Content playback is stuck when switching networks in 2 ad pod loading
gradle
  • implementation 'com.kaltura.playkit:imaplugin:4.4.0'

v4.3.1

11 Nov 07:38
Compare
Choose a tag to compare

Changes from v4.3.0

Plugin Playkit Support

v4.3.1

gradle
  • implementation 'com.kaltura.playkit:imaplugin:4.3.1'

v4.3.0

04 Nov 08:26
Compare
Choose a tag to compare

Changes from v4.2.0

Plugin Playkit Support

v4.3.0

New Features

  • FEM-2677 | Add IMA companion ad support

    Now Apps can add companion ad view and it's dimensions to IMA config and the IMA plugin will display it as long the video is displayed and will remove if in next media if there is no ad for it or no companion ad defined in the adtag.
    The app is responsible to manage this slot viability.
    Note that the width and .height are values that should be defined in the adtag url in the companion ads section

Example
 new IMAConfig().setAdTagUrl(adTagUrl).
         setCompanionAdConfig(companionAdSlot, 728, 90);

Bug Fixes

  • FEM-2690 | Added SKIPPABLE_STATE_CHANGED event in Ads event map
gradle
  • implementation 'com.kaltura.playkit:imaplugin:4.3.0'