This package is intended to provide a manifest stitching approach to integrate with the new proposal for HLS Interstitials. This is more of a fun side-project, that demonstrates the concept of client-side manifest stitching as a methodology for modifying playback, because Apple are providing an official client API for scheduling interstitial events, and so there is actually little to no technical reason to use this methodology (as far as I can see).
The implementation is based on revision
1.0b3 of the Getting Started With HLS Interstitials guide.
This repo contains the
Sources for the manifest stitching approach, and also, a reference app that demonstrates utilisation and functionality of the package. Currently, the reference app has a hard-coded expectation of which provisioning profile it expects, but anyone pulling the repo can just update this to one that makes sense for them; but bear in mind, that any provisioning profile used, will need to have the
|Last commit: 2 weeks ago|
As of iOS 16.1 we are able to intercept X-ASSET-LIST requests via AVAssetResourceLoaderDelegate. This allows us to use this approach instead of multiple tags each with their own X-ASSET-URI. Their may not be much benefit to this approach; however, it is more in line with how a backend server may deliver an interstitial response, and so we prefer this usage over the former to better approximate how a server driven approach may look like.
In addition, some bugs with the event decisioning actor were fixed.
NOTE: This comes with a breaking change; instead of providing
urls when creating
HLSInterstitialEvent, you must provide
assets, which contain a
url: URL as well as a
duration: Double. This change is needed to support the X-ASSET-LIST response.