Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. iOS
  3. ZFPlayer

ZFPlayer

MITObjective-C

A flexible iOS player framework supporting any player SDK and fully customizable control layer.

GitHubGitHub
7.1k stars1.8k forks0 contributors

What is ZFPlayer?

ZFPlayer is an iOS video player framework that provides a flexible architecture for integrating various player SDKs like AVPlayer and ijkplayer while allowing complete customization of the control layer. It solves the problem of being locked into a specific player implementation or having to modify source code to support different playback engines. Developers can build video players that match their app's design requirements without being constrained by the underlying player technology.

Target Audience

iOS developers building apps with video playback features who need flexibility in choosing player SDKs or designing custom player interfaces. This includes teams working on social media apps, streaming platforms, or any application requiring embedded video with tailored controls.

Value Proposition

Developers choose ZFPlayer because it decouples player engine selection from UI design, allowing them to swap player SDKs without rewriting control logic. Its protocol-based architecture makes it highly extensible, and built-in support for list views simplifies integration in feed-based applications.

Overview

Support customization of any player SDK and control layer(支持定制任何播放器SDK和控制层)

Use Cases

Best For

  • Integrating multiple player SDKs (AVPlayer, ijkplayer, VLC) in a single iOS app
  • Building custom video player interfaces with unique control designs
  • Adding video playback to UITableView or UICollectionView feeds
  • Creating apps that require screen rotation support for video
  • Developing video-heavy applications where player flexibility is critical
  • Teams needing to maintain consistent UI across different player backends

Not Ideal For

  • Apps requiring out-of-the-box, pre-styled player controls with minimal setup
  • SwiftUI-only projects due to its UIKit-centric architecture
  • Simple use cases where only AVPlayer is needed without multi-SDK flexibility
  • Teams unfamiliar with protocol-oriented programming in iOS

Pros & Cons

Pros

Player SDK Flexibility

Supports AVPlayer, ijkplayer, VLC, and others via the ZFPlayerMediaPlayback protocol, allowing developers to swap playback engines without rewriting control logic.

Custom UI Control

Enables full customization of player interfaces by conforming to the ZFPlayerMediaControl protocol, decoupling the control layer from the player engine for design freedom.

List View Integration

Provides built-in support for UITableView and UICollectionView, simplifying video playback implementation in feed-based apps like social media.

Rotation Handling

Manages screen orientation changes with built-in configuration options, reducing the need for manual rotation code in video playback scenarios.

Cons

Protocol Implementation Overhead

Requires conformance to protocols for custom players and controls, which can be complex and time-consuming for developers new to this architecture.

Limited SwiftUI Support

Primarily designed for UIKit, with no native SwiftUI components, forcing extra work to integrate into modern iOS apps using SwiftUI.

External Dependency Management

Using player SDKs like ijkplayer involves additional pod installations and potential compatibility issues, increasing setup complexity.

Frequently Asked Questions

Quick Stats

Stars7,130
Forks1,771
Contributors0
Open Issues253
Last commit1 year ago
CreatedSince 2016

Tags

#mobile-video#objective-c#player#custom-controls#custom#cocoapods#avplayer#swift-library#media-playback

Built With

i
iOS
O
Objective-C
C
CocoaPods
S
Swift
A
AVFoundation

Included in

iOS51.7k
Auto-fetched 1 day ago

Related Projects

MobilePlayerMobilePlayer

:iphone: :movie_camera: A powerful and completely customizable media player for iOS

Stars3,084
Forks352
Last commit3 years ago
XCDYouTubeKitXCDYouTubeKit

YouTube video player for iOS, tvOS and macOS

Stars2,928
Forks614
Last commit2 years ago
PlayerPlayer

▶️ Play and stream media in Swift

Stars2,158
Forks349
Last commit1 month ago
BMPlayerBMPlayer

A video player for iOS, based on AVPlayer, support the horizontal, vertical screen. support adjust volume, brightness and seek by slide, support subtitles.

Stars2,013
Forks432
Last commit2 years ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub