Swiftpack.co - Package - SRGSSR/srgletterbox-apple

404: Not Found


Stars: 4

Used By

Total: 0


Official iOS / tvOS 14 and Swift Package Manager support -

  • Support for iOS 14 and tvOS 14 is complete.
  • SRGLetterboxViewController supports picture in picture on tvOS.
  • Avoid playback restarting without user intervention on iOS.
  • This release introduces Swift Package Manager (SPM) support, replacing Carthage entirely. To migrate your project please follow instructions for migrating to version 6 of our Letterbox library.

Note that background video playback does not work on iOS 14.0 and 14.1 because of an iOS bug. This bug will be fixed in iOS 14.2 without requiring any SRG Letterbox update.

ComScore update for iOS and tvOS 14 -

  • The ComScore SDK has been updated to version 6.6.0 for correct tracking on iOS and tvOS 14.
  • Age rating icons have been replaced with a generic one without reference to FSK ratings.

iOS 14 emergency compatibility -

This release fixes an iOS 14 regression leading to the player still continuing playback of a video in the background, even after having been properly released.

Xcode 12 support

A proper iOS / tvOS 14 release will be made later. Until then, we recommend you ship your application with Xcode 11.7 if you can. The library can be compiled with Xcode 12 but has not been fully tested yet.

If you still intend to use Xcode 12, note there is an issue with Carthage with a workaround available. The next official release we will deliver will support Xcode 12 and replace Carthage with SPM.

Known issues

This release does not address the following issues:

  • Background video playback does not work anymore on iOS 14. The feature might disappear in a future Letterbox release if this is not supported anymore by the system, but we need more information first.
  • Picture in picture on tvOS 14 does not work.

Maintenance release -


  • Avoid screen dimming when playing a video with sound routed over AirPlay.
  • Correctly take into account SDH accessibility opt-in when choosing subtitles automatically.
  • Fix application potentially becoming unresponsive when starting audio playback.

Other changes

  • When preparing for playback, the completion handler is also called when the media did not change.

Improved livestream support -

Improved livestream support

The built-in user experience for livestreams, especially those supporting DVR, has been largely improved. In particular, users can now see which programs have been broadcasted during the last few hours and easily navigate among them.

iOS and tvOS

  • Program information is returned as segments in the controller media composition.
  • (Breaking change) Letterbox controller does not periodically update information associated with a channel (current and next program) when playing a livestream anymore. Program information must now be retrieved from the media composition segments instead. Accordingly, the SRGLetterboxChannelDefaultUpdateInterval and SRGLetterboxChannelMinimumUpdateInterval constants, as well as the channelUpdateInterval controller property, have been removed.
  • (Breaking change) The controller date property been renamed as currentDate for consistency.
  • -startOverWithCompletionHandler: and -canStartOver methods have been added to SRGLetterboxController so that starting the current program over can be triggered programmatically as well.
  • New controller methods available from SRGLetterboxController (TimeConversions) provide a way to perform time - date conversions for livestreams.

iOS only

  • Letterbox view timeline displays the programs available within the current DVR window.
  • A start over button has been added to restart the current program at its start.
  • (Breaking change) If available, date information is now returned as additional parameter -letterboxView:didScrollWithSubdivision:time:date:interactive: Letterbox view delegate method. Be sure to update your code so that your implementation keeps getting called.

tvOS only

  • Programs available within the current DVR window are displayed in the top info panel.

iOS improvements and design changes

  • The timeline design has been updated for better readability.
  • An issue preventing devices from correctly locking while playing video in background has been fixed. More generally, Letterbox will never prevent your device from sleeping when there is no video displayed. Note that this works best on devices running on iOS 12 and above.

iOS fixes

  • Player playback controls (skips, start over, back to live) are now simply disabled instead of hidden when unavailable.
  • Cell glitches (scaling) which could sometimes be seen when opening the timeline have been fixed.
  • Fix many layout warnings.
  • Fix seek imprecisions when using a Bluetooth headset.
  • Fix incorrect user interface controls possibly displayed after a DVR livestream has been paused.
  • Fix incorrect state when returning a paused DVR livestream to live conditions.
  • Fix livestreams without DVR incorrectly pausable from the control center.

tvOS fixes

  • Fix framework tvOS archiving issue with Xcode 11.4.

Aspect ratio support for iOS -

  • Recommended aspect ratio information is now returned by Letterbox view when calling its -animateAlongsideUserInterfaceWithAnimations:completion method. Applications can use this value as a hint about which aspect ratio is ideal for displaying the view.
  • For iOS 10 and above, an NSLayoutConstraint category method provides simple methods to update aspect ratio constraints. On iOS 9, we recommend you either choose a fixed aspect ratio or use another strategy.
  • The placeholder image fills Letterbox view entirely no matter the frame size.

Maintenance release -

  • Live has been replaced with Direct in French.
  • Fix issue limiting titles to one line instead of two in the segment and chapter timeline.
  • Fix issue preventing the timeline horizontal scrolling indicator from being visible when the system light UI appearance is used.

Audio track and subtitle support improvements -

Audio tracks and subtitle support

Audio track and subtitle support has been greatly improved to be more consistent and user-friendly. For more information, refer to the SRG Media Player release notes.

iOS and tvOS

  • Default audio selection now takes the application language into account, as well as user preferred languages.
  • Automatic subtitle selection automatically enables or disables subtitles based on the chosen audio language.
  • Media configuration could be made programatically by assigning a block to the mediaConfigurationBlock. This single block has been replaced with two specific audioConfigurationBlock and subtitleConfigurationBlock blocks. Refer to the updated documentation to see how these blocks should be implemented so that you can update your code appropriately.
  • Subtitle styling was previously made with the mediaConfigurationBlock. It must now be made with the new dedicated textStyleRules controller property.
  • The -reloadMediaConfigurationWithBlock: controller method has been removed. If you need to update a configuration block and apply the changes, update the associated block property and call -reloadMediaConfiguration afterwards.

iOS only

  • The audio and subtitle choice button is not displayed anymore for content without visible subtitles, e.g. livestreams (currently).
  • The user experience has been refined.
  • Subtitle and audio selection is preserved when enabling AirPlay.

Other changes

A few fixes and improvements have been made as well.

iOS and tvOS

  • OS version tracking for Mapp (Webtrekk) reporting has been fixed.
  • Player and UI component energy efficiency has been improved (the number of refreshes has been reduced). In particular, non-required background activity has been eliminated.

iOS only

  • Fix iTunesConnect submission issue due to UIWebView deprecation.
  • Fix automatic resume after change of routes.
  • Fix AirPlay playback short interruptions when playing the same media.
  • Fix incorrect memory management when using picture in picture is used, leading to possibly unreleased view controllers.
  • Fix sometimes incorrect position when seeking with the control center slider.
  • Properly reset control center when playback stops.
  • Picture in picture and AirPlay play along in a more natural way. When PiP is enabled, external playback is now prevented automatically (only audio might is routed to the receiver).
  • A picture in picture delegate is now required for the picture in picture button to be displayed. Previously, this button was always displayed, which was leading to a poor PiP experience.
  • The Letterbox service picture in picture delegate is now weakly retained. Ensure that your application retains this object directly.

tvOS compatibility -

  • The library is compatible with tvOS.
  • The control center integration has been improved:
    • The seek bar can be used to navigate in the media being played.
    • When using AirPlay, subtitles and audio tracks can be changed directly from the control center.
    • Playback controls through Siri have been improved.
  • Playback automatically resumes after audio interruption (e.g. phone call or alarm).
  • Data consumption has been reduced.
  • Fixed issue restarting stopped playback after network is reachable again.
  • Fixed issue incorrectly leading to livestreams being paused instead of stopped when using split view.
  • Semantic versioning has been adopted.
  • The project has been renamed as srgletterbox-apple.

Audio session management removal -

  • This version of Letterbox no longer manages audio session settings. Your application is now solely responsible of configuring the audio session settings as required.
  • For most applications, a proper default behavior can be obtained by setting the audio session category to AVAudioSessionCategoryPlayback early in the application lifecycle. This provides your application with the same behavior as Letterbox 1.14 and below. Please refer to the getting started guide for more information.

Maintenance release -

  • Fix partial diagnostics performance reports sent when playing some medias.

iOS 13 support -

  • The project has been updated to support iOS 13 and Xcode 11.
  • Dark mode is supported on iOS 13 and above. A new userInterfaceStyle property for SRGLetterboxView lets you choose whether the appearance is controlled by the system, or whether the track appearance should always be light or dark. Note that this setting only affects part of the UI elements associated with Letterbox (track selection only at the moment).

Remark: Transitive dependency on SRGLogger has been updated. As a result your project might not compile anymore. To fix this:

  • If your project was not using SRGLogger_Swift.framework, it will still compile fine after updating to 1.14.4. Nothing needs to be done.
  • If your project was referencing SRGLogger_Swift.framewok but is not using it actively, you can simply remove this dependency from your project to have it compile again.
  • If your project was using SRGLogger_Swift.framework, add srglogger-swift-ios as dependency to your Cartfile, and update your dependencies to have your project compile again.

Maintenance release -

  • Fix notification unregistration.
  • This version updates SRG Analytics to version 3.7.3.

Performance improvements -

  • Improve Letterbox player view performance. The time needed to display the view has been significantly reduced, and the view is better suited for use in scroll views.
  • Fix non-working lock screen video playback on devices running iOS 12.3 and above. A new backgroundVideoPlaybackEnabled controller property can be used to enable full background video playback as well.
  • Fix crash on iOS 13. Full iOS 13 is not implemented officially yet, though Letterbox should run fine already.
  • Demo: Medias can be directly opened in the demo using the letterbox and letterbox-nightly URL schemes. You can use our online tool to easily generate valid URLs.

Maintenance release -

This version updates SRG Analytics to version 3.7.1.

ℹ️ With this version, internal SRG SSR teams should use SRG Content Protection 1.2.2. For open source builds, use SRG Content Protection Fake 1.2.2 instead. ℹ️

SMDH streaming measurements -

  • Streaming measurements are now performed according to NetMetrix SMDH specifications.
  • A media configuration block can be optionally be attached to a Letterbox controller. This block is called when a media is ready to play, and provides a convenient way to customize the AVPlayerItem before it is played. This block is mostly provided as a way to customize subtitle and audio tracks programatically (#171).
  • Letterbox view support for favorites has been removed 🙋‍♂️.
  • The framework footprint at application startup time has been reduced.

Playback source support -

⚠️ To be able to successfully build your project with this version, internal SRG SSR teams must use SRG Content Protection 1.2. For open source builds, use SRG Content Protection Fake 1.2 instead. ⚠️

  • SRGPlaybackSettings has an additional sourceUid property, which can be used to relate media playback events with a source, i.e. where the media which is played initially came from. This can for example be useful if the media being played was delivered by some system (e.g. a recommendation engine), provided it identifies the source (e.g. a recommendation list) as a unique identifier.
  • Add globalParameters to SRGLetterboxController, which can be used to set parameters on all requests made by the controller. This setting must be used with caution, though (we recommend using it only for development purposes), as it might interfere with regular request parameters.
  • Subtitle selection has been improved.

Maintenance release -

This version updates SRG Data Provider to version 6.4 and SRG Analytics to version 3.6.1.

Playback settings -

  • Playback settings have been collected in an SRGLetterboxPlaybackSettings object, which now replaces the (usually long) parameter list of playback methods.
  • The SRGLetterboxControllerPlaylistDataSource protocol provides a new method for playlist implementations to supply the settings to use when playing a media.
  • The SRGLetterboxDefaultStartBitRate constant has been removed. The default start bit rate is still 800kbps, given by the SRGDefaultStartBitRate constant.
  • Fixes continuous playback interrupting playback of a new media, chapter or segment. Moreover, the Letterbox view now does not display any timeline anymore when the continuous playback screen is visible.
  • Fixes DVR livestreams incorrectly starting at the DVR window beginning.
  • Livestreams are now considered to be played in live conditions in their last 45 seconds. Consequently, livestreams shorter than 45 seconds provide no DVR capabilities, while streams over 45 seconds do. This ensures that some livestreams without DVR capabilities (e.g. SRF 1) never display any DVR controls.

ℹ️ With this update, please use SRG Content Protection 1.1.1 (Public or Private).

Control center improvements -

  • On iOS 10 devices and above, the control center now displays Live when playing a DVR livestream played in live conditions
  • An issue leading Apple TV receivers to sometimes display information from several medias at the same time has been fixed.
  • The contract for the endpoint locations at which data provider services can be retrieved has been updated. This is merely an internal implementation detail, but if you previously stored (and restored) the data provider service URL at your application level for some reason, the service URL needs to be discarded or updated first.

Digital rights management update, diagnostics and Xcode 10 support -

📢 Update to this version of Letterbox to ensure your application can play DRM-protected streams when delivered to production in 2019. 📢

  • Digital rights management support has been updated.
  • Anonymous diagnostic information is collected in proprietary builds for quality measurement purposes.
  • An issue affecting seeks in DVR streams has been fixed.
  • The project can now be built with Xcode 10 and the iOS 12 SDK.

Fix iTunes Connect binary submission -

This release fixes a binary submission issue for applications delivered with bitcode.

🚨 This version has known issues when compiling with the iOS 12 SDK. Until these issues have been fixed, please compile your application with the iOS 11 SDK and Xcode 9.4 (which will then run fine on iOS 12). 🚨

Digital rights management support -

🚨 This version has known issues when compiling with the iOS 12 SDK. Until these issues have been fixed, please compile your application with the iOS 11 SDK and Xcode 9.4 (which will then run fine on iOS 12). 🚨

⚠️To be able to play protected content, your Cartfile must specify the new SRG Content Protection as framework dependency.

This release contains the following library changes:

  • DRM-protected streams can now be played. The first DRM-protected streams will be delivered early 2019 and will replace the previous ones protected with Akamai secure token. Applications should update to this version of Letterbox early enough so that their users can play the new streams when available.
  • A start position parameter has been added to playback methods. Attempting to play some content near or past its end will start playback at the default position instead (usually the content beginning). This behavior can be further customized through the added endTolerance and endToleranceRatio controller settings.
  • For consistency, a start position can also be provided when a media is played automatically in the context of a playlist (-controller:startPositionForMedia: method).
  • The Letterbox controller now broadcasts segment transitions as well through SRGLetterboxSegmentDidStartNotification and SRGLetterboxSegmentDidEndNotification notifications.
  • For consistency, the constants SRGLetterboxUpdateIntervalDefault and SRGLetterboxChannelUpdateIntervalDefault have been renamed as SRGLetterboxDefaultUpdateInterval and SRGLetterboxChannelDefaultUpdateInterval respectively.
  • The constant SRGLetterboxContinuousPlaybackTransitionDurationDisabled has been renamed as SRGLetterboxContinuousPlaybackDisabled.
  • Overall performance has been improved.
  • AirPlay instabilities with Akamai-protected streams have been fixed.
  • An issue incorrectly stopping livestreams in some cases has been fixed.
  • SRG Letterbox now has an explicit dependency on the new SRG Network framework, which you must add to your project. To play protected content (token-protected livestreams or DRM streams, e.g.), you must add the new SRG Content Protection framework as well. Please update your Carthage dependencies according to the updated installation instructions.
  • To mitigate slow application startups usually associated with a large number of dynamic frameworks being used, static framework integration with Carthage 0.30 and above is now supported.
  • A Makefile has been added to conveniently build and package the project.

The demo was updated as well:

  • A setting for enabling standalone mode widely has been added.
  • Topics can be accessed directly, even those from our mobile team development server (MMF).

Digital rights management support (beta 1) -

🚧This is a beta release and should not be used in production applications. Release version is 1.10. 🚧

This release contains the following library changes:

  • DRM streams are now played when available (expected availability for SRG SSR clients is early 2019).
  • Performance improvements.
  • AirPlay instability fix for Akamai streams.
  • Fix issue incorrectly leading livestreams to be stopped in some cases.
  • SRG Letterbox now has an explicit dependency on the new SRG Network and SRG Content Protection frameworks. Existing projects must add these new dependencies to their targets after update with Carthage.

The demo was updated as well:

  • A setting for enabling standalone mode widely has been added.
  • Topics can be accessed directly, even those from our mobile team development server (MMF).

Playlists and continuous playback improvements -

  • SRGLetterboxControllerPlaylistDataSource has an optional controller:didTransitionToMedia:automatically: method to get the playlist transition.
  • Continuous playback UI displays the next media title and its show title now.

Maintenance release -

This version updates dependencies the library relies on.

Maintenance release -

  • The popup attached to the slider know is now displayed in red when a DVR stream is played in live conditions.
  • Apigee, previously acting as an image scaling service proxy, is not used anymore.
  • The player is now more resilient against playback interruptions due to resource metadata updates (only URL changes can now lead to playback being stopped).
  • This version modernizes the project with Xcode 9.4.

Player accessibility fix -

  • An issue sometimes preventing player controls from being toggled when VoiceOver is used has been fixed (see https://github.com/SRGSSR/playsrg-ios/issues/135).
  • The red color associated with livestreams has been updated consistently.
  • The "livestream ended" notification isn't displayed anymore when opening a VOD, linked to an expired livestream.

Support fix for 1.5.2 -

This update is only meant for users of Letterbox version 1.5.2

This update integrates the Apple submission fix introduced in version 1.9.2 for users that cannot migrate from version 1.5.2.

Maintenance release -

  • Improve time slider design.
  • Update media placeholder and red color for the live only label.
  • This version updates SRG Media Player to version 2.4.