
Player is a simple iOS/tvOS video player library written in Swift.
Need a different version of Swift?
5.0 - Target your Podfile to the latest release or master4.2 - Target your Podfile to the swift4.2 branch4.0 - Target your Podfile to the swift4.0 branchPlayer is available for installation using Swift Package Manager, CocoaPods, or by manually copying the Player.swift file into your Xcode project.
Add Player to your Package.swift dependencies:
dependencies: [
.package(url: "https://github.com/piemonte/Player.git", from: "0.15.0")
]
Or add it directly in Xcode via File > Add Package Dependencies and enter the repository URL.
pod "Player", "~> 0.15.0"
Simply copy the Player.swift file from the Sources directory into your Xcode project.
The sample project provides an example of how to integrate Player, otherwise you can follow these steps.
Allocate and add the Player controller to your view hierarchy.
self.player = Player()
self.player.playerDelegate = self
self.player.playbackDelegate = self
self.player.view.frame = self.view.bounds
self.addChild(self.player)
self.view.addSubview(self.player.view)
self.player.didMove(toParent: self)
Provide the file path to the resource you would like to play locally or stream. Ensure you're including the file extension.
let videoUrl: URL = // file or http url
self.player.url = videoUrl
For HTTP streams with custom headers, use AVAsset:
let videoUrl: URL = // http url
let headers = ["Authorization": "Bearer token123"]
let asset = AVURLAsset(url: videoUrl, options: ["AVURLAssetHTTPHeaderFieldsKey": headers])
self.player.asset = asset
For iCloud Photos or PHAsset videos, use AVPlayerItem:
let playerItem: AVPlayerItem = // your player item
self.player.playerItem = playerItem
play/pause
self.player.playFromBeginning()
Adjust the fill mode for the video, if needed.
self.player.fillMode = .resizeAspectFit
Display video playback progress, if needed.
extension ViewController: PlayerPlaybackDelegate {
public func playerPlaybackWillStartFromBeginning(_ player: Player) {
}
public func playerPlaybackDidEnd(_ player: Player) {
}
public func playerCurrentTimeDidChange(_ player: Player) {
let fraction = Double(player.currentTime) / Double(player.maximumDuration)
self._playbackViewController?.setProgress(progress: CGFloat(fraction), animated: true)
}
public func playerPlaybackWillLoop(_ player: Player) {
self. _playbackViewController?.reset()
}
}
You can find the docs here. Documentation is generated with jazzy and hosted on GitHub-Pages.
Player is available under the MIT license, see the LICENSE file for more information.
847 followers · starred Aug 2016
136 followers · starred Aug 2020
128 followers · starred Nov 2022
833 followers · starred Oct 2021

Player is a simple iOS/tvOS video player library written in Swift.
Need a different version of Swift?
5.0 - Target your Podfile to the latest release or master4.2 - Target your Podfile to the swift4.2 branch4.0 - Target your Podfile to the swift4.0 branchPlayer is available for installation using Swift Package Manager, CocoaPods, or by manually copying the Player.swift file into your Xcode project.
Add Player to your Package.swift dependencies:
dependencies: [
.package(url: "https://github.com/piemonte/Player.git", from: "0.15.0")
]
Or add it directly in Xcode via File > Add Package Dependencies and enter the repository URL.
pod "Player", "~> 0.15.0"
Simply copy the Player.swift file from the Sources directory into your Xcode project.
The sample project provides an example of how to integrate Player, otherwise you can follow these steps.
Allocate and add the Player controller to your view hierarchy.
self.player = Player()
self.player.playerDelegate = self
self.player.playbackDelegate = self
self.player.view.frame = self.view.bounds
self.addChild(self.player)
self.view.addSubview(self.player.view)
self.player.didMove(toParent: self)
Provide the file path to the resource you would like to play locally or stream. Ensure you're including the file extension.
let videoUrl: URL = // file or http url
self.player.url = videoUrl
For HTTP streams with custom headers, use AVAsset:
let videoUrl: URL = // http url
let headers = ["Authorization": "Bearer token123"]
let asset = AVURLAsset(url: videoUrl, options: ["AVURLAssetHTTPHeaderFieldsKey": headers])
self.player.asset = asset
For iCloud Photos or PHAsset videos, use AVPlayerItem:
let playerItem: AVPlayerItem = // your player item
self.player.playerItem = playerItem
play/pause
self.player.playFromBeginning()
Adjust the fill mode for the video, if needed.
self.player.fillMode = .resizeAspectFit
Display video playback progress, if needed.
extension ViewController: PlayerPlaybackDelegate {
public func playerPlaybackWillStartFromBeginning(_ player: Player) {
}
public func playerPlaybackDidEnd(_ player: Player) {
}
public func playerCurrentTimeDidChange(_ player: Player) {
let fraction = Double(player.currentTime) / Double(player.maximumDuration)
self._playbackViewController?.setProgress(progress: CGFloat(fraction), animated: true)
}
public func playerPlaybackWillLoop(_ player: Player) {
self. _playbackViewController?.reset()
}
}
You can find the docs here. Documentation is generated with jazzy and hosted on GitHub-Pages.
Player is available under the MIT license, see the LICENSE file for more information.
847 followers · starred Aug 2016
136 followers · starred Aug 2020
128 followers · starred Nov 2022
833 followers · starred Oct 2021