About this project

VersaPlayer is a versatile video player implementation for Apple platforms, with support for iOS, macOS, and tvOS. It is distributed as a Swift library and can be installed with CocoaPods or Carthage; an example Xcode project is included in the repository. The core API lets developers add a VersaPlayerView either programmatically or through a storyboard, create a VersaPlayerItem from a URL, and begin playback. A separate VersaPlayerControls component provides wired outlets for common playback interface elements, including play/pause, fullscreen, Picture in Picture on supported devices, rewind, fast forward, skip backward/forward, a seek bar, current and total time labels, and a buffering indicator. Controls can be customized or replaced. Advanced playback features include selection of alternative audio tracks, video renditions, and caption tracks. Caption presentation can be adjusted through the player's caption styling API. For protected media, VersaPlayer supports encrypted content by allowing apps to implement a VersaPlayerDecryptionDelegate and assign it to the player. The player is also extension-based. Developers can subclass VersaPlayerExtension to customize player behavior, and the project documents separate extensions for AirPlay, advertising, and overlay content. Additional API documentation is published online, and the library is available under the MIT license.