从API看起来这两个功能上好像有些重叠?感觉AudioSource 就是audioEngine中的Music部分。此外就是AudioSource是一个组件。播放音效的话应该是使用audioEngine,如果是背景音乐应该使用哪个更好?这两者分别是对应哪种场合使用呢?
播放背景音乐也可以用 audioEngine, AudioSource 最终调用了还是 audioEngine 的代码.
例如:如果不想过多的写代码的人他可以通过添加组件的方式来添加音效就可以使用 AudioSource
了解了,谢谢
在安卓手机上,通过audiosource组件作为场景的背景音乐,设置为loop和play onload,在自己写的组件中通过audioengine播放场景中的角色配音。背景音乐和角色配音都是mp3格式的。
上述过程中出现了两个问题:
(1)背景音乐循环播放的衔接处有非常明显的卡顿。
(2)当背景音乐播放完第一遍后,角色的配音如果没有播放完,当背景音乐播放播放第二遍的时候角色的配音就被中断了(即角色没有声音了)。
上述逻辑在ios真机上没有问题,可以正常播放。
第二个问题不是被中断了,而是因为角色的配音时长超过了5秒,5秒后的就没有声音了。
是原生安卓。
是web上还是原生android程序会有这些问题吖?
AudioSource 和 cc.audioEngine 最大的区别是,AudioSource 不可以用来播放背景音乐。
AudioSource 是作为组件挂载在场景的各种节点上的,所以它可能同时会有多个。而背景音乐的底层播放接口不支持多音轨,同一时刻只能播放一个。所以背景音乐需要用 cc.audioEngine.playMusic 来切换,而 AudioSource 应该用来播放短音效
感谢您的解答:)
理解您说的意思,我的项目里说的背景音乐是几秒钟的音乐(通过循环播放),角色配音的时长几十秒(只能用playMusic了,安卓超过5秒后不播放),因为playMusic同时只能播放一个,那么就只能用其来播放配音,背景音乐用短音效循环了吧
对的,背景音乐用 playMusic 循环,其他的音效用 playEffect 或者 AudioSource 来播放
感谢您的解答:)
希望封装的简单一点。
让使用者只需要知道3个就行了。
要么播放背景音乐的playbackmusic
要么播放音效的playEffect
另外如果播放长音效,比如剧情对话这种用playEffect太短不行(似乎因为缓存)
可以考虑增加一个playLongEffect
提供的选择过多会让用户比较迷茫,很多用户不想知道细节。
作为用户,最喜欢的是引擎组封装的更简单,易用,
请问大佬,AudioSource是不是只是个封装调用audioEngine的组件,最终还是在调用audioEngine在播放音乐还是它们用的事两个东西
AudioSource目前应该就是封装了一下对audioEngine的调用
但是因为他是挂在Node上的一个组件,所以能享受到生命周期管理的功能
比如挂在Audio的Node被移除掉了,那么它上面挂着的AudioSource也就自动停止播放了。
而且以后如果要开发3D引擎里面的立体声支持,那么就会存在音源的位置这样的概念,就必须要通过Node来给Audio定位了,也就是说必须要用AudioSource组件才有可能在将来支持立体声
但是全局背景音乐这样的功能又是必要的,所以保留了直接调用audioEngine的方式
我是这么理解的
你这些解释应该放到文档里啊!!!!!
请问 creator 能支持左右声道控制吗?
请问怎么控制循环?我加了常驻节点,切换场景不会中断了,但是只会播放一次;
代码是
cc.Class({
extends: cc.Component,
properties: {
bgAudio: {
default: null,
type: cc.AudioClip
}
},
// LIFE-CYCLE CALLBACKS:
onLoad () {
cc.game.addPersistRootNode(this.node); // 将该节点添加为常驻节点
cc.audioEngine.playMusic(this.bgAudio); // 播放背景音乐
},
});
后边加一个 true
