Texas是一个基于FFmpeg和SDL2的高性能音频播放器,使用C++17开发,支持多种音频格式的解码和播放。
- 支持多种音频格式(MP3, WAV, FLAC, AAC等)
- 高质量音频重采样
- 基本播放控制(播放、暂停、恢复、停止)
- 音量调节(0-128)
- 精确的音频定位(跳转)
- 缓冲区管理,防止音频卡顿
- 完善的日志系统,支持多级别日志和文件轮转
- macOS, Linux 或 Windows
- C++17兼容的编译器
- xmake 构建工具
- FFmpeg (用于音频解码)
- SDL2 (用于音频播放)
- spdlog (用于日志记录)
Texas使用xmake管理依赖项,xmake会自动下载并编译所需的依赖库。
首先,安装xmake:
# macOS (使用Homebrew)
brew install xmake
# Linux
wget https://xmake.io/shget.text -O - | bash
# Windows
下载并运行安装程序:https://github.com/xmake-io/xmake/releases# 克隆仓库
git clone https://github.com/yourusername/texas.git
cd texas
# 配置并构建项目
xmake config
xmake
# 运行
xmake runTexas提供了一个简单的命令行界面,可以通过以下命令启动:
xmake run启动后,你可以使用以下命令:
- 加载音频文件:输入文件路径
- 播放:开始播放当前加载的音频文件
- 暂停:暂停当前播放
- 恢复:恢复暂停的播放
- 停止:停止播放
- 跳转:跳转到指定时间点(以秒为单位)
- 音量:调整播放音量(0-128)
- 状态:显示当前播放状态
- 退出:退出程序
日志配置位于src/main.cpp中,可以修改以下参数:
Logger::LoggerConfig lconfig;
lconfig.filename = "logs/app.log"; // 日志文件路径
lconfig.level = Logger::Level::DEBUG; // 日志级别
lconfig.console_output = false; // 是否输出到控制台音频解码器配置位于include/audio_decoder.h中:
struct AudioDecoderConfig {
size_t maxQueueSize = 100; // 最大帧队列大小
bool dropFramesWhenFull = false; // 队列满时是否丢弃帧
int timeoutMs = -1; // 获取帧超时时间(毫秒)
};-
文件加载失败
- 检查文件路径是否正确
- 确认文件格式是否支持
- 查看日志文件获取详细错误信息
-
音频播放问题
- 检查系统音量设置
- 确认音频设备是否正常工作
- 查看日志中的音频设备初始化信息
-
性能问题
- 检查系统资源使用情况
- 调整音频缓冲区大小
- 考虑降低音频质量或重采样率
日志文件默认保存在logs/app.log,包含详细的运行时信息和错误记录。
- 遵循C++17标准
- 使用4空格缩进
- 类名使用大驼峰命名法
- 函数和变量使用小驼峰命名法
- 常量使用全大写加下划线
-
提交信息格式:
<type>(<scope>): <subject>- type: feat, fix, docs, style, refactor, test, chore
- scope: 可选,表示修改范围
- subject: 简短描述
-
分支管理
- main: 稳定版本
- develop: 开发版本
- feature/*: 新功能
- bugfix/*: 错误修复
- 添加新功能时确保包含单元测试
- 运行所有测试确保没有破坏现有功能
- 测试覆盖率应保持在80%以上
本项目采用MIT许可证。详见LICENSE文件。
- 初始版本发布
- 支持基本的音频播放功能
- 实现命令行界面
- 添加日志系统