ap_ds ap_ds v4.0.1

ap_ds:轻量级 Python 音频库

2.5MB 完成音频播放与元数据解析,无需外部解码器

v4.0.1 仅 2.5MB 跨平台 W/M/L

1. 项目概况

官方信息

项目名称:ap_ds

官方网站:https://apds.top

PyPI:https://pypi.org/project/ap_ds/

维护者:Dvs (DvsXT)

ap_ds 是一个轻量级(2.5MB)的 Python 音频库,用于播放和解析 MP3、FLAC、OGG 与 WAV 文件。它不依赖外部 Python 包,仅使用 Python 标准库与系统自带的 SDL2。

v3.0.0 LTS 长期支持版本

首个长期支持版本,提供 五年维护与免费技术支持,适合对依赖稳定性有要求的项目。

2. 核心能力

体积
Windows 2.5MB · macOS 3.36MB · Linux 视发行版而定
格式支持
MP3 / FLAC / OGG / WAV
元数据解析
WAV / FLAC 100% 准确
无阻塞播放
不阻塞 GUI 主线程

体积对比

  • ap_ds Windows: 2.5MB
  • macOS: 3.36MB
  • Linux: 动态链接 ~50KB
  • FFmpeg: ≥160MB
  • Pygame + 其他依赖: 体积与功能取舍不同

为什么体积能够这么小

  • 专注播放与解析,不做编辑或转码
  • 基于工业级 SDL2
  • 按需释放资源
  • 跨平台 W / M / L

3. 方案对比

方案一:Pygame 的音长获取

# Pygame 在非 WAV 格式下不可靠的音长获取
my_sound = pygame.mixer.Sound('my_song.mp3')
total_length = my_sound.get_length()  # 仅 WAV 可靠
Pygame 的 Sound.get_length() 仅对 WAV 格式准确,MP3 / OGG / FLAC 会返回无效值。

方案二:FFmpeg 打包体积

方案能力体积
ffplay.exe音长获取≈80MB
ffprobe.exe元数据解析≈80MB
ffmpeg.exe转码能力≈80MB
使用 FFmpeg 需随程序分发可执行文件,使 Python 安装包体积增加约 160MB。

方案三:ap_ds 的做法

高清突破

  • 2.5MB 完成 160MB 的工作
  • 不依赖第三方 GUI 框架
  • 精确时长查询
  • 非阻塞播放
  • AID 音频句柄
  • SDL2 后端
  • 单文件 C 扩展跨平台

4. 安装与使用

pip install ap_ds

基础示例

from ap_ds import AudioLibrary

lib = AudioLibrary()
aid = lib.play_from_file("music.mp3")
lib.pause_audio(aid)
lib.seek_audio(aid, 30.5)
duration = lib.stop_audio(aid)

DAP 音频列表(v2.3.0+)

aid1 = lib.play_from_file("song1.mp3")
recordings = lib.get_dap_recordings()
lib.save_dap_to_json("my_playlist.ap-ds-dap")

淡入淡出效果(v2.4.0+)

# 2秒淡入
lib.fadein_music(aid, loops=-1, ms=2000)

# 3秒淡出
lib.fadeout_music(ms=3000)

# 查询播放状态
if lib.is_music_playing():
    print("音乐播放完毕")

5. 开源许可证

本项目不使用 MIT 许可证

ap_ds 采用自研的 DVS Audio Library (ap_ds) Open Source License(简称 AP_DS-OSL)2.0。

您可以

  • 商业使用
  • 修改代码
  • 闭源集成
  • 销售解决方案
  • 云服务部署

您不可以

  • 使用原始品牌名称
  • 删除版权声明
  • 用于非法用途
  • 专利侵权诉讼

您应该

  • 保留版权声明
  • 标注来源归属
  • 报告安全问题
  • 修改版本用独立品牌

详细许可证请查看 AP_DS_LICENSE.MD 文件。

阅读许可证全文(AP_DS-OSL 2.0)

6. 常见问题

问:公司可以将其集成到商业产品中吗?

完全可以,无需付费、无需通知、无需授权。

问:我可以修改并重新分发吗?

可以,但必须使用独立品牌、保留版权、标注来源、提供维护者声明。

问:我必须开源我的修改吗?

不需要,您可以闭源分发。

问:在云服务中使用需要付费吗?

不需要,但欢迎贡献代码。

问:技术支持收费吗?

永久免费技术支持,通过 GitCode Issues 或邮件联系。

7. 联系与支持

授权咨询

me@dvsyun.top 或 dvs6666@163.com

7个工作日内回复

技术支持

GitCode Issues · 官方文档 · 邮件支持

永久免费

官方仓库

主仓库:GitCode

国内镜像:Gitee

已废弃:GitHub

项目主页:apds.top

8. 最新公告

加载中...