In the Playback
section we list the common features shared by all player engines (PlayerEngine.apple
)
Basic playback
An example project of basic HLS playback is provided as part of the PRESTOPlay SDK. The example is located in the Examples
folder and can be opened with Xcode.
// Initialise the SDK and register the plugins
_ = PRESTOPlaySDK.shared.register("LICENSE",[HLSPlugin()])
// Create the player
var player = PRESTOPlaySDK.shared.player()
guard let contentURL = URL(string: "https://example.com/master.m3u8")
else { return }
// Configure the player
let config = PlayerConfiguration(with: contentURL)
player.load(config: config)
player.onState = { previous, state in
// Handle player state changes
switch state.playbackState {
case .ready:
print("Player ready")
// handle other states ...
}
if let error = state.playerError {
print("Error \(error)")
}
}
// Attach the player to the view
player.attach(to: view.layer)
// Start playback
player.open(autoplay: true)
Video gravity
Video gravity determines how the video content is scaled or stretched within the player bounds.
The player layer supports the following video gravity values:
AVLayerVideoGravity.resizeAspect
player should preserve the video’s aspect ratio and fit the video within the bounds,
AVLayerVideoGravity.resizeAspectFill
player should preserve the video’s aspect ratio and fill the bounds,
AVLayerVideoGravity.resize
video should be stretched to fill the bounds