我是小白~
我想给游戏主页面加一个循环播放的背景音乐,试了两种方法,都没有实现循环播放,都是播放一遍就不播了,请大神帮忙看看问题在哪:
方法一:在scene中,放一个背景图bigbg,给他加一个AudioSource组件,拖拽了一个mp3格式放上。勾选了Play on Load和loop。结果只播放一遍。
方法二:不勾选Play on Load,而是在bigbg的脚本组件中的onload事件里,用代码获取到AudioSource组件,调用play事件,代码如下
var bgmp3=this.node.getComponent(cc.AudioSource);
bgmp3.play();
仍然是只播放一遍。
如果用方法二,play方法是否有多种重载?是否可以给play方法传个参数?在哪能看到play函数的完整定义和各种重载?
各位大神,小弟先多谢了。
http://www.cocos.com/docs/creator/api/classes/audioEngine.html
方法
play ( filePath loop volume ) Number
播放音频
名称 类型 描述
filePath String
The path of the audio file without filename extension.
loop Boolean
Whether the music loop or not.
volume Number
Volume size.
返回:
类型: Number
audioId
示例:
//example
var audioID = cc.audioEngine.play(path, false, 0.5);
audioEngine 和 audioSource,两者是有区别的吧,只能用audioEngine实现吗?也就是说,用audioSourse,接着我的思路,继续修改修改,实现不了吗?
理论上来说 你的audioSourse组件勾选了loop 应该就能循环了 。 要么你打开官方的事例工程看看吧
我在问个小白问题,查半天没查到。如果用你说的这个方法,var audioID = cc.audioEngine.play(path, false, 0.5);
这里边这个path怎么写?比如我的mp3文件放在Texture->mp3->background.mp3,那这个path怎么写?
cc.url.raw(“xx/xx/xx.mp3”)
或者像示例工程一样
properties: {
audio: {
url: cc.AudioClip,
default: null
},
},
直接拖上去 cc.audioEngine.play(this.audio, true);
小弟提供一个综合的方法,一样可以在任意node中加AudioSource组件,只是Play on Load和Loop都先不勾。然后要播放的时候自行用代码取得AudioSource组件的clip属性,再用cc.audioEngine.play(path, true, 1)播放即可,path=AudioSource.clip,true=设置loop播放,1=volume。
以上只在pc web测试过,真机没测试过。
ccc版本1.8.0