The SDK provides a playlist-like behavior through the PlaylistAPI
interface.
It is possible to implement multiple strategies or modes and expose it from a plugin.
Implementations
Currently there are 2 playlist modes implemented.
Native Queue
Exposed by CastlabsApple
in HLSPlugin
plugin.
It is an extensive and integrated wrapper over AVQueuePlayer
implementation.
Native AVQueuePlayer
is responsible for preloading and maintaining streaming items.
Item Replace
Exposed by CastlabsApple
in HLSPlugin
plugin.
It uses single player. On item change the player replaces the current item played. Effectively there is also only single, current item added to the player.
The plugin has partial control over how an item is loaded.
Basic Usage
Ensure the HLSPlugin
is enabled when registering the SDK, e.g.
import PRESTOplay
import CastlabsApple
let res = PRESTOplaySDK.shared.register("LICENSE", [HLSPlugin()])
Create a player instance and load your playlist:
let player = PRESTOplaySDK.shared.player()
let playlist = PRESTOplaySDK.shared.playlist(for: player, mode: .nativeQueue)
let simplePlaylist = [
PlayerConfiguration(with: URL(string: "stream1")!),
PlayerConfiguration(with: URL(string: "stream2")!),
PlayerConfiguration(with: URL(string: "stream3")!)
]
playlist?.load(items: simplePlaylist)
You can control player with regular PlayerAPI
interface.
To play next or previous items:
playlist?.nextItem()
playlist?.previousItem()