All Versions
Latest Version
Avg Release Cycle
51 days
Latest Release
1240 days ago

Changelog History
Page 1

  • v6.1.0 Changes

    November 24, 2020
    • ๐Ÿ‘€ In segment and playback notifications, the reason why segment selection occurred is now provided. See SRGMediaPlayerSelectionReason.
  • v6.0.0 Changes

    October 23, 2020

    ๐Ÿ‘Œ Improved iOS and tvOS 14 compatibility

    ๐Ÿš€ This release improves compatibility with iOS and tvOS 14, most notably:

    • ๐Ÿ›  The time slider appearance has been fixed when displayed on a modal with a custom transition animation.
    • ๐Ÿ›  A potential route detection deadlock has been fixed.
    • Picture in picture is available for tvOS.

    โšก๏ธ 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 Media Player update.

  • v5.0.3 Changes

    September 19, 2020

    ๐Ÿš€ Apple took us by surprise this year. We had reported an iOS 14 regression (player leak due to PiP changes in iOS 14), but this bug was not addressed and iOS 14 released. As a result, playing a video on iOS 14 with SRGMediaPlayerController is internally leaking an AVPlayer instance for reasons outside our control.

    ๐Ÿš€ This release provides a workaround for this issue until we can discuss with Apple about it (if we ever can). It first internally presents an invisible AVPlayerViewController instance, which magically fixes the issue.

    ๐Ÿ‘ About 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

    ๐Ÿ‘ iOS 14 breaks background video playback support. This is either desired behavior or a regression. Until we know more the API will be kept as is but will not produce the expected behavior (video playback is paused when transitioning to the background, even if the player layer is detached).

    ๐Ÿš€ Finally, note that picture in picture is not working for tvOS 14 yet. This feature is planned for a later release.

  • v5.0.2 Changes

    September 01, 2020
    • Mitigate a possible crash when playback fails for some reason.
  • v5.0.1 Changes

    September 01, 2020
    • ๐Ÿ›  Fix stall detection, avoiding the controller to sometimes stay stuck in this state.
    • Avoid screen dimming when playing a video with sound routed over AirPlay.
    • Correctly take into account SDH accessibility opt-in when choosing subtitles automatically.
  • v5.0.0 Changes

    July 08, 2020

    ๐Ÿ‘ Date support

    ๐Ÿš€ This release adds support for dates when playing a livestream:

    • When playing a livestream, the currentDate property of SRGMediaPlayerController provides the date corresponding to the current position, if any.
    • ๐Ÿ‘€ For livestreams the player can equivalently start playback or seek to time or date-based positions. New SRGMark and SRGMarkRange classes have been introduced to support this duality.
    • (Breaking change) To support the time / date duality, segments are not defined anymore with time ranges, but with mark ranges. The previously required -srg_timeRange property has therefore been replaced with -srg_markRange.
    • (Breaking change) SRGTimeSliderDelegate methods receive an optional date parameter. Be sure your implementation adopt the new method signatures.

    ๐Ÿ‘€ This feature works best if date information is supplied in the streams themselves with EXT-X-PROGRAM-DATE-TIME tags. This ensures that the stream time and the wall-clock time can be related. If no such information is available in your streams you can still use date-based seeking, but accuracy might not be optimal (there is a delay between broadcasting and streaming). To mitigate this issue, you can measure which delay there is between broadcasting and streaming, and provide a SRGMediaPlayerUserInfoStreamOffsetKey as userInfo when playing your stream.

    ๐Ÿ›  Fixes

    • ๐Ÿ‘ Ensure the player prevents the device from sleeping only when required. For video background playback proper behavior requires a device supporting iOS 12 or above.
    • ๐Ÿ›  Fix imprecise seeks when a Bluetooth handset is connected.
    • ๐Ÿ›  Fix issue preventing the player from correctly resuming when seeking outside the available media range.
    • ๐Ÿ›  Fix tvOS build issue with Xcode 11.4.
  • v4.0.0 Changes

    March 09, 2020

    ๐Ÿ‘ Audio tracks and subtitle support

    ๐Ÿ‘ Audio track and subtitle support has been greatly improved to be more consistent and user-friendly.

    iOS and tvOS

    • 0๏ธโƒฃ Default audio selection now takes the application language into account, as well as user preferred languages. For example, if an application is only translated in French but offers content with French and English audio, the default language is now French. Previously, this depended only on user preferred languages and could be English if the user preferred language was English, even though the application was available in French only.
    • Automatic subtitle selection works as it should. It now correctly automatically enables subtitles if the audio is not a language the user is supposed to understand, but that subtitles the user can understand are available (based on app and system preferred languages).
    • ๐Ÿ“š 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: and -reloadPlayerConfigurationWithBlock: controller methods have been removed. If you need to update a configuration block and apply the changes, update the associated block property and call -reloadMediaConfiguration or -reloadPlayerConfiguration afterwards.

    iOS only

    • Audio track and subtitle choices are correctly preserved when casting over AirPlay and not overridden by the receiver (e.g. Apple TV) anymore.
    • The audio track and subtitle user interface has been improved. The current choice is always displayed (even if not available for the specified content). Empty selection is not possible anymore (this was clearly misleading for users) and information to the user has been improved.
    • Empty subtitle tracks are now omitted. This avoids SRGTracksButton from being displayed when not needed, and eliminates dumb choices with no visible effect from the tracks popover altogether.

    Other changes

    ๐Ÿ›  A few fixes and improvements have been made as well.

    iOS and tvOS

    • ๐Ÿ’ป 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

    • SRGPlaybackButton can be assigned an optional delegate for action and accessibility customization if needed.
    • 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).
    • ๐Ÿ“š Documentation for PiP support has been improved. In particular, correct restoration requires a custom transition to be implemented which was previously not clearly stated. Refer to the documentation and examples for more information.
  • v3.0.0 Changes

    December 17, 2019
    • The library is compatible with tvOS.
    • Many properties are now key-value observable (e.g. timeRange or mediaType). If your implementation previously used periodic time observers to check these properties for changes, you should now simply respond to changes instead.
    • ๐Ÿšš The AirPlay button now supports two different images for audio and video. The previously unique image property has been removed.
    • Semantic versioning has been adopted.
    • The project has been renamed as srgmediaplayer-apple.
  • v2.8 Changes

    August 13, 2019
    • โšก๏ธ The project has been updated to support iOS 13 and Xcode 11.
    • โšก๏ธ The track selection interface has been updated:
      • Dark mode is supported on iOS 13 and above. A new userInterfaceStyle property for SRGTracksButton lets you choose whether the appearance is controlled by the system, or whether the track selection interface should always be displayed with a light or dark theme.
      • The track selection interface displays either as a popover or modal depending on the available screen width.
    • โšก๏ธ The SRGMediaPlayerViewController icons have been updated for a more consistent look & feel.
    • The SRGTracksButtonDelegate delegate methods have been renamed.
  • v2.7.1 Changes

    July 29, 2019
    • Tracks popover anchoring has been made more reliable.