/** * 音频模块 * @author 薛鸿潇 */ export default class AudioSystem { /** * 背景音乐播放 * @param clip 音频资源 * @param loop 循环 * @returns audio_id */ public playMusic(clip: cc.AudioClip, loop: boolean = false): number { return cc.audioEngine.playMusic(clip, loop); } /** * 播放音效文件 * @param clip * @param loop * @returns audio_id */ public playEffect(clip: cc.AudioClip, loop = false): number { return cc.audioEngine.playEffect(clip, loop); } /** * 停止播放音效 * @param audio_id */ public stopEffect(audio_id: number): void { cc.audioEngine.stopEffect(audio_id); } /** * 设置音效声音大小 * @param value */ public setEffectVolume(value: number): void { cc.audioEngine.setEffectsVolume(value); } /** * 获取音效大小 * @return 0.0 - 1.0 */ public getEffectVolume(): number { return cc.audioEngine.getEffectsVolume(); } /** * 停止播放所有正在播放的音效 */ public stopAllEffects() { cc.audioEngine.stopAllEffects(); } /** * 暂停当前播放音乐 */ public pauseMusic() { cc.audioEngine.pauseMusic(); } /** * 恢复当前说暂停的所有音效 */ public resumeAllEffects() { cc.audioEngine.resumeAllEffects(); } /** * 恢复当前被暂停音乐音乐 */ public resumeMusic() { cc.audioEngine.resumeMusic(); } /** * 暂停播放音乐 */ public stopMusic() { cc.audioEngine.stopMusic(); } /** * 设置音乐音量 * @param value 0~1音量 */ public setMusicVolume(value: number) { cc.audioEngine.setMusicVolume(value); } /** * 获取音乐音量 * @returns {number} */ public getMusicVolume() { return cc.audioEngine.getMusicVolume(); } /** * 音乐是否正在播放(验证些方法来实现背景音乐是否播放完成) * @returns {boolean} */ public isMusicPlaying() { return cc.audioEngine.isMusicPlaying(); } /** * 释放指定音效资源 * @param audio 音频资源 */ public releaseAudio(audio: cc.AudioClip) { if (!audio) { cc.error("【音频】资源" + audio + "不存在, 释放失败") return; } cc.audioEngine.uncache(audio); } /** * 停止所有音频 */ public stopAllAudio() { cc.audioEngine.stopAll(); } /** * 释放所有音频 */ public releaseAllAudio() { cc.audioEngine.uncacheAll(); } }