|
@@ -0,0 +1,135 @@
|
|
|
|
|
+/**
|
|
|
|
|
+ * 音频模块
|
|
|
|
|
+ * @author xhx
|
|
|
|
|
+ */
|
|
|
|
|
+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();
|
|
|
|
|
+ }
|
|
|
|
|
+}
|