3 years ago
iOS: 4.0.0
General Changes
- Entirely rewritten in Swift while maintaining backward compatibility for customer applications using Objective-C.
- Completely native player and User Interface by using UIKit, which gives easier video control presentations and customizations.
- Decoupled user interface, which gives greater flexibility for creating own user interface with
JWPlayerView
. - License keys must be supplied programmatically through
JWPlayerKit
. For extra security, they are no longer read from the Info.plist in the application. - Thumbnail preview is shown as the user seeks across the content if the thumbnail track is specified for a
JWPlayerItem
. - New and improved customizable user interface through using the
JWPlayerViewController
. - Chromecast is supported through using our interface in
JWPlayerViewController
if you include GoogleCast SDK in your project. - Related content is displayed in a new and improved user interface, complete with autoplay functionality.
- Added a common error reporting
JWError
for warnings and errors. - Added specialized metadata event delegates, which can be subscribed to events through the
JWPlayer
protocol. - Added fast forward button to compliment the rewind button
Ads
- Upgraded IMA support to 3.14.3 include iOS 14 and above. JW iOS SDK 4.0 supports Google IMA, Google IMA DAI, and JWP VAST.
- Added Picture-in-Picture support for IMA DAI ads.
- Added ability to set custom initialization options through the
assetOptions
property.
API Updates
- Added dedicated builders for each type of ad, and renamed
JWAdConfig
toJWAdertisingConfig
.- Google IMA
JWImaAdvertisingConfigBuilder
- Google IMA DAI
JWImaDaiAdvertisingConfigBuilder
- JWP VAST
JWAdsAdvertisingConfigBuilder
- Google IMA
- Renamed
JWConfig
toJWPlayerConfiguration
, which is created using a separate objectJWPlayerConfigurationBuilder
. - Renamed
JWPlaylistItem
toJWPlayerItem
. - Renamed
JWSource
toJWVideoSource
. - Renamed
JWRelatedConfig
toJWRelatedContentConfiguration
. - Deprecated
JWTrack
, and added associated buildersJWMediaTrack
,JWChapterTrack
,JWCaptionTrack
, andJWThumbnailTrack
.
Event API
- Added multiple delegates for different events
•JWPlayer
•JWPlayerDelegate
•JWPlayerStateDelegate
•JWPlayerViewControllerDelegate
•JWViewControllerDelegate
•JWAdDelegate
•JWAVDelegate
•JWPlaybackMetadataDelegate
User Interface
- Added Lock screen control, which is more reactive to the state of the player:
• The next item and previous item buttons are shown if the current item is part of a playlist.
• The rewind and fast forward buttons are enabled if there is only one item. “Advertisement” is displayed as the video title when an ad is playing.
• The application’s name is displayed in the controls if a currently playing item does not have a title.
• “Previous Item” button is disabled for the first item in a playlist, and the “Next Item” button is disabled for the final item in a playlist. - Added chapter markers, which are displayed as cue points and chapters have been defined for the player item.
Captions
- Added ability to customize the look of captions using
JWCaptionStyle
. These settings are observed only if they are not specified in the user’s accessibility settings. - Added side-loaded VTT captions positional attributes, which is specified within the VTT file. Vertically-displayed text is not supported.
- Added In-manifest Caption support for Chromecast.
Deprecated Features
- VPAID and FreeWheel support
- CSS support