# KingPlayer **Repository Path**: dcom1024/KingPlayer ## Basic Information - **Project Name**: KingPlayer - **Description**: KingPlayer 一个专注于 Android 视频播放器(IjkPlayer、ExoPlayer、VlcPlayer、MediaPlayer)的基础库,无缝切换内核。 - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 5 - **Created**: 2024-12-22 - **Last Updated**: 2024-12-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # KingPlayer [![Download](https://img.shields.io/badge/download-App-blue.svg)](https://raw.githubusercontent.com/jenly1314/KingPlayer/master/app/release/app-release.apk) [![JCenter](https://img.shields.io/badge/JCenter-1.0.0.beta1-46C018.svg)](https://bintray.com/beta/#/jenly/maven/king-player) [![JitPack](https://jitpack.io/v/jenly1314/KingPlayer.svg)](https://jitpack.io/#jenly1314/KingPlayer) [![CI](https://travis-ci.org/jenly1314/KingPlayer.svg?branch=master)](https://travis-ci.org/jenly1314/KingPlayer) [![CircleCI](https://circleci.com/gh/jenly1314/KingPlayer.svg?style=svg)](https://circleci.com/gh/jenly1314/KingPlayer) [![API](https://img.shields.io/badge/API-21%2B-blue.svg?style=flat)](https://android-arsenal.com/api?level=21) [![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/mit-license.php) KingPlayer 一个专注于 Android 视频播放器(IjkPlayer、ExoPlayer、VlcPlayer、SysPlayer)的基础库,无缝切换内核。 ## 功能说明 - [x] 主要播放相关核心功能 - [x] 播放器无缝切换 - [x] MediaPlayer封装实现(SysPlayer) - [x] IjkPlayer封装实现 - [x] ExoPlayer封装实现 - [x] vlc-android封装实现 - [ ] 控制图层相关 - [ ] 待补充... ## Gif 展示 ![Image](GIF.gif) > 你也可以直接下载 [演示App](https://raw.githubusercontent.com/jenly1314/KingPlayer/master/app/release/app-release.apk) 体验效果 ## 引入 ### Gradle: 1. 在Project的 **build.gradle** 或 **setting.gradle** 中添加远程仓库 ```gradle repositories { //... mavenCentral() maven { url 'https://jitpack.io' } } ``` 2. 在Module的 **build.gradle** 里面添加引入依赖项 使用 **SysPlayer** (Android自带的MediaPlayer) ```gradle //KingPlayer基础库,内置SysPlayer implementation 'com.github.jenly1314.KingPlayer:king-player:1.0.0-beta1' ``` 使用 **IjkPlayer** ```gradle //KingPlayer基础库(必须) implementation 'com.github.jenly1314.KingPlayer:king-player:1.0.0-beta1' //IjkPlayer implementation 'com.github.jenly1314.KingPlayer:ijk-player:1.0.0-beta1' // 根据您的需求选择ijk模式的so implementation 'tv.danmaku.ijk.media:ijkplayer-armv7a:0.8.8' // Other ABIs: optional implementation 'tv.danmaku.ijk.media:ijkplayer-armv5:0.8.8' implementation 'tv.danmaku.ijk.media:ijkplayer-arm64:0.8.8' implementation 'tv.danmaku.ijk.media:ijkplayer-x86:0.8.8' implementation 'tv.danmaku.ijk.media:ijkplayer-x86_64:0.8.8' ``` 使用 **ExoPlayer** ```gradle //KingPlayer基础库(必须) implementation 'com.github.jenly1314.KingPlayer:king-player:1.0.0-beta1' //ExoPlayer implementation 'com.github.jenly1314.KingPlayer:exo-player:1.0.0-beta1' ``` 使用 **VlcPlayer** ```gradle //KingPlayer基础库(必须) implementation 'com.github.jenly1314.KingPlayer:king-player:1.0.0-beta1' //VlcPlayer implementation 'com.github.jenly1314.KingPlayer:vlc-player:1.0.0-beta1' ``` ## 使用 布局示例 ```xml ``` 代码示例 ```kotlin //初始化一个视频播放器(IjkPlayer、ExoPlayer、VlcPlayer、SysPlayer) videoView.player = IjkPlayer(context) //初始化数据源 val dataSource = DataSource(url) videoView.setDataSource(dataSource) videoView.setOnSurfaceListener(object : VideoView.OnSurfaceListener { override fun onSurfaceCreated(surface: Surface, width: Int, height: Int) { LogUtils.d("onSurfaceCreated: $width * $height") videoView.start() } override fun onSurfaceSizeChanged(surface: Surface, width: Int, height: Int) { LogUtils.d("onSurfaceSizeChanged: $width * $height") } override fun onSurfaceDestroyed(surface: Surface) { LogUtils.d("onSurfaceDestroyed") } }) //缓冲更新监听 videoView.setOnBufferingUpdateListener { LogUtils.d("buffering: $it") } //播放事件监听 videoView.setOnPlayerEventListener { event, bundle -> } //错误事件监听 videoView.setOnErrorListener { event, bundle -> } ``` ```kotlin //------------ 控制相关 //开始 videoView.start() //暂停 videoView.pause() //进度调整到指定位置 videoView.seekTo(pos) //停止 videoView.stop() //释放 videoView.release() //重置 videoView.reset() ``` 更多使用详情,请查看[app](app)中的源码使用示例或直接查看[API帮助文档](https://jitpack.io/com/github/jenly1314/KingPlayer/latest/javadoc/) ### 其他 需使用JDK8+编译,在你项目中的build.gradle的android{}中添加配置: ```gradle compileOptions { targetCompatibility JavaVersion.VERSION_1_8 sourceCompatibility JavaVersion.VERSION_1_8 } ``` ## 版本记录 #### v1.0.0-beta1:2020-12-28 * KingPlayer初始版本 ## 感谢 [ijkPlayer](https://github.com/bilibili/ijkplayer) [ExoPlayer](https://github.com/google/ExoPlayer) [vlc-android](https://code.videolan.org/videolan/vlc-android) [MediaPlayer](https://android.googlesource.com/platform/frameworks/base/+/refs/heads/master/media/java/android/media/MediaPlayer.java) ## 赞赏 如果您喜欢KingPlayer,或感觉KingPlayer帮助到了您,可以点右上角“Star”支持一下,您的支持就是我的动力,谢谢 :smiley:

您也可以扫描下面的二维码,请作者喝杯咖啡 :coffee:

## 关于我 | 我的博客 | GitHub | Gitee | CSDN | 博客园 | |:------------------------------------------------------------------------------------|:----------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------| | Jenly's Blog | jenly1314 | jenly1314 | jenly121 | jenly | ## 联系我 | 微信公众号 | Gmail邮箱 | QQ邮箱 | QQ群 | QQ群 | |:-------------|:---------------------------------------------------------------------------------|:----------------------------------------------------------------------------------|:--------------------------------------------------------------------------------------------------------------------------|:--------------------------------------------------------------------------------------------------------------------------| | [Jenly666](http://weixin.qq.com/r/wzpWTuPEQL4-ract92-R) | jenly1314 | jenly1314 | 20867961 | 64020761 |