# VideoPlayer **Repository Path**: andy1215/video-player ## Basic Information - **Project Name**: VideoPlayer - **Description**: VideoPlayer VideoPlayer VideoPlayer - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-17 - **Last Updated**: 2026-03-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Video Player 一款使用 Jetpack Compose 构建的 Android 视频播放器应用。 ## 功能特性 - 浏览设备上的所有视频文件 - 全屏视频播放 - 手势控制: - 双击:播放/暂停 或 快进/快退 - 水平拖动:进度拖动 - 单击:切换控件显示 - 支持 Intent 直接打开视频文件 - 适配 Android 13+ 媒体权限 ## 支持的视频格式 mp4, mkv, avi, webm, 3gp, mov, flv, wmv ## 技术栈 - **语言**: Kotlin 1.9.22 - **UI**: Jetpack Compose + Material 3 - **播放器**: ExoPlayer (Media3 1.2.1) - **架构**: MVVM + Repository - **导航**: Navigation Compose - **状态管理**: StateFlow + ViewModel ## 系统要求 - Android SDK 29+ (Android 10+) - 目标 SDK 34 (Android 14) ## 构建指南 ```bash # 克隆项目 git clone cd VideoPlayer # 构建调试版 APK ./gradlew assembleDebug # 构建发布版 APK ./gradlew assembleRelease # 安装到连接的设备 ./gradlew installDebug # 运行测试 ./gradlew test ``` ## 项目结构 ``` app/src/main/java/com/videoplayer/app/ ├── MainActivity.kt # 主 Activity,处理权限和导航 ├── data/ │ ├── VideoItem.kt # 视频数据模型 │ └── VideoRepository.kt # 视频数据仓库(MediaStore 查询) └── ui/ ├── VideoListViewModel.kt # 视频列表 ViewModel ├── VideoPlayerViewModel.kt # 播放器 ViewModel(ExoPlayer 封装) ├── player/ │ └── PlayerController.kt # 播放器事件和回调处理 └── screens/ ├── VideoListScreen.kt # 视频列表界面 └── VideoPlayerScreen.kt # 全屏播放器界面 ``` ## 使用说明 1. 首次启动时需要授予存储权限以访问视频文件 2. 在主界面浏览视频列表 3. 点击视频进入播放界面 4. 使用手势控制播放: - 单击屏幕:显示/隐藏控制栏 - 双击左侧:快退 10 秒 - 双击右侧:快进 10 秒 - 水平拖动:调整播放进度 - 双击中央:播放/暂停 ## 许可证 本项目仅供学习参考使用。