KJPlayer
English | 简体中文
功能介绍
动态切换内核,支持边下边播的播放器方案
- 支持音/视频播放,midi 文件播放
- 支持在线播放/本地播放
- 支持后台播放,音频提取播放
- 支持视频边下边播,分片下载播放存储
- 支持断点续载续播,下次直接优先从缓冲读取播放
- 支持缓存管理,清除时间段缓存
- 支持试看,自动跳过片头片尾
- 支持记录上次播放时间
- 支持自动播放,自动连续播放
- 支持随机/重复/顺序播放
- 支持重力感应,全屏/半屏切换
- 支持基本手势操作,进度音量等
- 支持锁定屏幕
- 长按快进快退等操作
- 支持倍速播放
- 支持切换不同分辨率视频
- 支持直播流媒体播放
- 持续更新中...
视频支持格式:mp4、m3u8、wav、avi
音频支持格式:midi、mp3、
效果图
![]() |
![]() |
---|
免费试看功能
- 此功能类似于vip会员观看性质,充值后继续播放观看模式
// MARK: - KJPlayerFreeDelegate
extension DetailsViewController: KJPlayerFreeDelegate {
/// 获取免费试看时间
/// - Parameter player: 播放器内核
/// - Returns: 试看时间,返回零不限制
func kj_freeLookTime(with player: KJBasePlayer) -> TimeInterval {
return 50
}
/// 试看结束响应
/// - Parameters:
/// - player: 播放器内核
/// - currentTime: 当前播放时间
func kj_freeLookTime(with player: KJBasePlayer, currentTime: TimeInterval) {
}
}
- 充值后恢复观看权限
self.player.kj_closeFreeLookTimeLimit()
CocoaPods 安装尝试观看模块
pod 'KJPlayer/FreeTime' # vip尝试观看功能
跳过片头片尾功能
- 该功能非常明确,类似于在观看视频时跳过片头和片尾的功能
// MARK: - KJPlayerSkipDelegate
extension DetailsViewController: KJPlayerSkipDelegate {
/// 跳过片头
/// - Parameter player: 内核
/// - Returns: 需要跳过的时间
func kj_skipOpeningTime(with player: KJBasePlayer) -> TimeInterval {
return 18
}
/// 跳过片头响应
/// - Parameters:
/// - player: 内核
/// - openingTime: 跳过播放时间
func kj_skipOpeningTime(with player: KJBasePlayer, openingTime: TimeInterval) {
self.backview.hintTextLayer.kj_displayHintText("跳过片头,自动播放",
time: 5,
position: KJPlayerHintPositionBottom)
}
}
CocoaPods安装跳过片头片尾模块
pod 'KJPlayer/SkipTime' # vip跳过片头片尾功能
记忆播放功能
- 该功能将自动记住上次播放的时间,下次播放将直接无缝地继续播放
// MARK: - KJPlayerRecordDelegate
extension DetailsViewController: KJPlayerRecordDelegate {
/// 获取是否需要记录响应
/// - Parameter player: 播放器内核
/// - Returns: 是否需要记忆播放
func kj_recordTime(with player: KJBasePlayer) -> Bool {
return true
}
/// 获取到上次播放时间响应
/// - Parameters:
/// - player: 播放器内核
/// - lastTime: 上次播放时间
func kj_recordTime(with player: KJBasePlayer, lastTime: TimeInterval) {
}
}
- 主动选择存储记忆
self.player.kj_saveRecordLastTime()
CocoaPods安装自动记忆播放模块
pod 'KJPlayer/RecordTime' # vip自动记忆播放功能
备注提示:该功能比跳过片头功能更高级,简而言之,该功能实现后,下次将从上次播放的位置直接开始观看
其余功能模块
1.播放器模块
- midi内核:
pod 'KJPlayer/MIDI'
- ijk内核:
pod 'KJPlayer/IJKPlayer'
- av内核:
pod 'KJPlayer/AVPlayer/AVCore'
- 自定义UI:
pod 'KJPlayer/CustomView'
- 数据库:
pod 'KJPlayer/Database'
2.功能区域模块
-
AVPlayer内核扩展功能
- 边下边播边存分支:
pod 'KJPlayer/AVPlayer/AVDownloader'
- 边下边播边存分支:
-
记忆播放:
pod 'KJPlayer/RecordTime'
-
尝鲜播放:
pod 'KJPlayer/FreeTime'
-
跳过片头片尾:
pod 'KJPlayer/SkipTime'
-
缓存板块:
pod 'KJPlayer/Cache'
-
视频截屏板块:
pod 'KJPlayer/Screenshots'
-
切换内核:
pod 'KJPlayer/DynamicSource'
- 目前支持3种内核:AVPlayer内核、MIDI内核、IJKPlayer内核
大致流程就是这样,Demo也写得非常详细,可以自行查看
🎷
总结:先完善基本框架,之后逐步补充其他内核。如若觉得有帮助,请帮忙点个赞,有任何问题或需求也可以提交Issues
关于作者
🎷 邮箱地址:[email protected]🎷 🎸 GitHub地址:yangKJ🎸 🎺 掘金地址:茶底世界之下🎺 - 🚴🏻 简书地址:77___ 🚴🏻
救救孩子吧,谢谢各位大佬。