Swift基于AVPlayer的视频播放器

基于 AVPlayer 的 Swift 播放器,玩法真的挺丰富的。不光能播本地视频,还支持 HLS 流媒体,普通全屏、竖屏、横屏都能切,而且加了不少实用的手势,比如滑动调亮度、音量和播放进度,做得还挺顺手。

视频播放器的 UI 也比较好改,想自定义控制栏、进度条都可以,甚至还能搞个你专属的样式风格。整体上来看,用这个项目搭个视频播放模块,算是省时省力的选择了。

AVPlayerAVPlayerItem是核心,前者负责播,后者负责装资源,还能调起播点、音量这些属性,逻辑清晰,入门也不难。

再来讲讲手势支持这一块,支持横滑调进度、竖滑调亮度和音量,还有双击切全屏,做得还蛮贴近用户习惯的。你要是想搞点酷炫的效果,比如播放时加点滤镜啥的,也可以扩展。

监听也做得不错,KVOCombine都能用来监控播放状态,比如缓冲情况、播放失败的回调,都能第一时间响应。

性能优化这边,建议你注意下preferredForwardBufferDuration,调得合适可以让播放更流畅。用完记得释放AVPlayerAVPlayerItem,不然内存占用挺快的。

还有点小高级功能,比如硬件解码离线缓存字幕加载,这些在实际项目里经常用到。如果你有在线视频课程、短视频播放需求,这个项目用来改造挺方便的。

如果你想深入 AVFoundation,建议你也看看相关内容,像iOS avfoundation本地缓存的 swift-avplayer 实现这些都挺实用。

zip 文件大小:141.98KB