explaingit

lipangit/jiaozivideoplayer

10,489JavaAudience · developerComplexity · 2/5LicenseSetup · easy

TLDR

An Android video player library in Java you can drop into any app, swap the playback engine with one line of code, and fully customize the UI, handles full-screen, gestures, and list-scroll scenarios out of the box.

Mindmap

mindmap
  root((jiaozivideoplayer))
    Features
      Swappable engine
      Custom UI
      Full screen
      Gesture control
    Compatibility
      RecyclerView
      ViewPager
      Fragment
      WebView
    Tech stack
      Java
      Android
      ijkplayer
    Setup
      One dependency
      XML layout
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Add a customizable video player to an Android app that handles full-screen mode, swipe gestures, and list scrolling correctly.

USE CASE 2

Swap the default MediaPlayer for ijkplayer with one line to support more video formats and streaming protocols.

USE CASE 3

Build a completely custom player UI by subclassing the library's base class and overriding the controls.

USE CASE 4

Embed a video player inside a WebView or complex nested layouts like ViewPager without full-screen conflicts.

Tech stack

JavaAndroidijkplayerMediaPlayerXML

Getting it running

Difficulty · easy Time to first run · 30min
Use freely in any project including commercial apps as long as you keep the MIT copyright notice.

In plain English

JiaoZiVideoPlayer (also called jzvd) is an Android video player library written in Java. It gives app developers a ready-made video player component they can drop into an Android app and customize heavily. The README is written in Chinese, with code examples in Java and XML. The main selling point is that you can swap out the underlying playback engine with a single line of code. It supports Android's built-in MediaPlayer as well as ijkplayer, a third-party engine. This means you can choose which video formats and streaming protocols your app handles by picking the right engine. The UI can also be replaced entirely: developers inherit from the library's base class and write their own player appearance and controls on top of it. The library handles several scenarios that video players in Android lists typically struggle with. It correctly detects when a list is scrolling and manages playback accordingly. It supports full-screen mode that can be entered and exited while a video is loading, paused, or playing. It also works inside nested layouts like ListView, ViewPager, and Fragment combinations, which normally create conflicts with full-screen video. After entering full-screen, swipe gestures let the user adjust progress and volume without tapping buttons. Additional features include a gravity sensor that automatically rotates into full-screen when you tilt the device, variable playback speed, a video cache example in the demo project, and the ability to embed the player inside a WebView. When the user presses the Home button, playback pauses and resumes when they return. Installation involves adding one dependency line to the build file, placing the player view in a layout XML file, and setting a video URL and thumbnail image in Java code. The library is released under the MIT license.

Copy-paste prompts

Prompt 1
I am building an Android app and want to add a video player using JiaoZiVideoPlayer. Show me the build.gradle dependency and the minimum Java code to play a URL with a thumbnail.
Prompt 2
How do I switch JiaoZiVideoPlayer from the default MediaPlayer to ijkplayer for better video format support?
Prompt 3
I want a custom full-screen player UI with JiaoZiVideoPlayer. Show me how to subclass the base class and override the controls.
Prompt 4
My JiaoZiVideoPlayer is inside a RecyclerView. How do I make it automatically pause when the item scrolls off screen?
Open on GitHub → Explain another repo

← lipangit on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.