This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
sound 模块是 WenextAndroid 框架中的音效与提示音管理模块,提供统一的音频播放管理功能。
模块采用适配器模式,内部集成三种播放器实现:
mediasdk/) - 媒体 SDK 播放器,支持高质量音频播放soundpool/) - Android SoundPool 播放器,适合短音效systemmedia/) - Android MediaPlayer 播放器,适合长音乐ISoundPlayer (接口)
↓
SoundPlayer (主实现类)
├── MediaSdkPlayer
├── SoundPoolPlayer
└── SystemMediaPlayer
config.isUseMediaSdk() 为 true 时,统一使用 MediaSdkSoundType: SOUND (短音效) / MUSIC (长音效)PlayerType: MEDIA_SDK / SOUND_POOL / SYSTEM_MEDIASoundPriority: LOW / NORMAL / HIGHPlayStatus: STOP / PAUSE / RESUME / PLAYISoundPlayerConfig 提供:
mediaSdkSoundEffect: MediaSDK 音效接口audioZipFileName: 音频压缩包文件名audioPath: 音频文件路径isUseMediaSdk(): 是否使用 MediaSDKisInForeGround(): 前台状态检查音频文件支持两种加载方式:
load(fileName, soundType) - 从 assets 目录加载loadPath(filePath, soundType) - 从指定文件路径加载音频文件会通过 copyVersionZipFromAssetsToFile 从 assets 中的压缩包解压到本地存储。
提供前台/后台播放控制:
play() 系列方法: 仅在前台播放playCanInBg() 系列方法: 支持后台播放该模块依赖以下 frame 模块:
frame:log - 日志记录frame:util - 工具类frame:storage - 存储管理frame:coroutine - 协程支持遵循框架标准的接口-工厂-初始化模式:
// 1. 创建配置实现
class MyConfig : ISoundPlayerConfig { ... }
// 2. 创建播放器实例
val soundPlayer = createSoundPlayer(config)
// 3. 准备和播放
soundPlayer.prepare()
soundPlayer.play("sound.mp3", SoundType.SOUND)