音频 和 音效有啥区别??

比如audioEngine 这3个方法有啥区别???:

play 播放音频

playMusic 播放背景音乐

playEffect 播放音效

这个问题 手动点赞
官方的文档“无比清晰”

1赞
    play: function (clip, loop, volume/*, profile*/) {
        var path = clip;
        var audio;
        if (typeof clip === 'string') {
            // backward compatibility since 1.10
            cc.warnID(8401, 'cc.audioEngine', 'cc.AudioClip', 'AudioClip', 'cc.AudioClip', 'audio');
            path = clip;
            // load clip
            audio = getAudioFromPath(path);
            AudioClip._loadByUrl(path, function (err, clip) {
                if (clip) {
                    audio.src = clip;
                }
            });
        }
        else {
            if (!clip) {
                return;
            }
            path = clip.nativeUrl;
            audio = getAudioFromPath(path);
            audio.src = clip;
        }

        audio.setLoop(loop || false);
        if (typeof volume !== 'number') {
            volume = 1;
        }
        audio.setVolume(volume);
        audio.play();

        return audio.id;
    },

    playMusic: function (clip, loop) {
        var music = this._music;
        this.stop(music.id);
        music.id = this.play(clip, loop, music.volume);
        music.loop = loop;
        return music.id;
    },
    playEffect: function (clip, loop) {
        return this.play(clip, loop || false, this._effect.volume);
    },

看源代码~

这个出自于 JavaScript engine?

engine\cocos2d\audio\CCAudioEngine.js

这个说明了啥?

背景音乐只有一个,停止的时候你可以 stopMusic: function () 不用指定 audio ID,符合使用场景,简单

音效多个,停止的时候 stopEffect: function (audioID) 必须指定 audio ID,或者 stopAllEffects: function () 暂停所有音效。

主要是用来区分场景的。

经常有游戏情景需要不停止背景音乐,但是停止所有音效的。假如只提供 play 方法,就会需要你自己记录哪一个是背景音乐,遇到这种场景处理起来比较麻烦。


另外音效一般是短的音频,背景音乐一般是长的音频。

谢谢!那play 这个方法又是啥意思?另外,其实这3个方法用哪个方法播放,其实性能是一样吧?我用 playEffect 播放长音乐也没有任何问题吧?

还是劳烦继续回答吧,谢谢了,这些问题会帮助很多人

另外,Animation 类有没有类似 audioEngine 滴 全局管理理念 (主要是类似stopMusic能停止所有 动画 这种),要是没有,以后会提供吗?

按照玩游戏这么多年的理解

音频☞ 一段音乐 比如 王者荣耀里五杀时候播放的 喷他Q
背景音乐☞ 在某个游戏或者场景里不断循环播放的音乐 衬托游戏或场景气氛的
音效☞ 游戏中触发动作时发出声音 比如挥刀,被打的声音

你这回复有意义吗?这3个方法有啥区别?上面leda 已经回答了 playMusic 和 playEffect ,现在还差一个 play,另外,其实这3个方法用哪个方法播放性能有区别吗?另外,Animation 类有没有类似 audioEngine 滴 全局管理理念 (主要是类似stopMusic能停止所有 动画 这种),要是没有,以后会提供吗?

没有区别, 后面两个就是对play()的封装, 方便使用而已. 要不你就自己缓存所有audioId, 来决定开关, 这种常用工具官方简单封装下, 省的自己写变量多繁琐.

晕,原来是这样 ,Animation 官方有类似封装吗?

Animation怎么封装?难道有个什么全局背景动作?(笑

你怎样一次性暂停 10 个动画?

我看引擎组的人回复了我就按照我的理解说一下,具体的解释还得看引擎组,我就是路过,哈哈