# exoplayer-dev
**Repository Path**: ssxiong/exoplayer-dev
## Basic Information
- **Project Name**: exoplayer-dev
- **Description**: ExoPlayer dev copy
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-04-04
- **Last Updated**: 2026-04-18
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Player
轻量、无广告的 Android 本地视频播放器,基于 AndroidX Media3 1.10.0 + FFmpeg 软解。
## 特性
### 🎬 全格式支持
内置 FFmpeg **40 个解码器**,软硬解自动切换:
**视频:** H.264 / H.265 / VP8 / VP9 / MPEG-1 / MPEG-2 / MPEG-4 / VC-1 / H.263 / WMV1/2/3 / MSMPEG4 系列
**音频:** AAC / AC-3 / E-AC-3 / TrueHD / DTS / MP3 / Vorbis / Opus / FLAC / ALAC / AMR / PCM 系列
支持容器:MP4 / MKV / AVI / WMV / WebM / FLV / MPEG-TS / MOV / 3GP 等
### 📝 字幕
- 内嵌字幕 + 外挂 SRT/ASS
- 字幕时间偏移调节(±100ms)
- 透明背景 + 白字黑描边
### 🖥 NAS 播放
- 群晖 Synology dlink 直链播放
- SMB 协议支持
### 🎮 播放控制
- 倍速播放(0.25x ~ 4x)
- 画面比例切换(适应/拉伸/裁剪/原始)
- 音轨选择
- 手势控制(音量/亮度/快进快退)
### 🔒 纯净
- **无广告**、无数据收集、无后台行为
- 不包含任何第三方广告/统计 SDK
- 完全开源
## 截图
| 主页 | 播放 | 设置 |
|------|------|------|
| 主页面 | 播放控制 | 设置页 |
## 构建
### 环境要求
- Android Studio Hedgehog+
- Android NDK 27.0.12077973
- Java 17
### 步骤
```bash
# 1. 克隆项目
git clone https://gitee.com/ssxiong/exoplayer-dev.git
cd exoplayer-dev
# 2. 编译 FFmpeg 解码器(首次需要,约 5-10 分钟)
cd libraries/decoder_ffmpeg/src/main/jni
bash build_ffmpeg.sh \
$(pwd)/.. \
$ANDROID_HOME/ndk/27.0.12077973 \
linux-x86_64 \
21
cd ../../../..
# 3. 生成签名文件(发布版需要)
keytool -genkey -v -keystore release.keystore \
-alias player -keyalg RSA -keysize 2048 -validity 10000
# 4. 配置签名密码
echo "KEYSTORE_PASSWORD=your_password" >> local.properties
echo "KEY_PASSWORD=your_password" >> local.properties
# 5. 构建 APK
./gradlew assembleRelease
```
输出:`app/buildout/outputs/apk/release/app-release.apk`
## 项目结构
```
exoplayer-dev/
├── app/ # 主应用模块
│ └── src/main/java/com/example/player/
│ ├── PlayerActivity.java # 播放器核心
│ ├── MainActivity.java # 主页(视频列表)
│ ├── SettingsFragment.java # 设置页
│ ├── NasBrowser*.java # NAS 浏览
│ └── SplashActivity.java # 启动页
├── libraries/
│ ├── decoder_ffmpeg/ # FFmpeg 解码器模块
│ │ └── src/main/jni/ # FFmpeg 源码 + 编译脚本
│ ├── extractor/ # Media3 Extractor(含 FfmpegExtractor)
│ ├── ui/ # PlayerView UI 模块
│ └── common/ # Media3 公共模块
├── PLAYER_BUILD_GUIDE.md # 详细构建指南
├── DECODER_LIST.md # 完整解码器列表
└── build_ffmpeg.sh # FFmpeg 一键编译脚本
```
## 技术栈
- **AndroidX Media3 1.10.0** — 播放器框架
- **FFmpeg** — 软件解码器
- **MediaCodec** — 硬件解码
- **ExoPlayer** — 播放引擎
## 文档
- [构建指南](PLAYER_BUILD_GUIDE.md) — 详细构建步骤和常见问题
- [解码器列表](DECODER_LIST.md) — 40 个解码器完整清单
- [更新日志](CHANGELOG.md) — 版本变更记录
## 开源协议
基于 AndroidX Media3(Apache 2.0)修改。
本项目采用 **MIT License** 开源。