LayaBox 有两个可以播放音乐相关的接口,一个是playMusic,一个是playSound。
/**
* 播放背景音乐。背景音乐同时只能播放一个,如果在播放背景音乐时再次调用本方法,会先停止之前的背景音乐,再播发当前的背景音乐。
* @param url 声音文件地址。
* @param loops 循环次数,0表示无限循环。
* @param complete 声音播放完成回调。
* @param startTime 声音播放起始时间。
* @return SoundChannel对象,通过此对象可以对声音进行控制,以及获取声音信息。
*/
static playMusic(url: string, loops?: number, complete?: Handler, startTime?: number): SoundChannel;
/**
* 播放音效。音效可以同时播放多个。
* @param url 声音文件地址。
* @param loops 循环次数,0表示无限循环。
* @param complete 声音播放完成回调 Handler对象。
* @param soundClass 使用哪个声音类进行播放,null表示自动选择。
* @param startTime 声音播放起始时间。
* @return SoundChannel对象,通过此对象可以对声音进行控制,以及获取声音信息。
*/
static playSound(url: string, loops?: number, complete?: Handler, soundClass?: any, startTime?: number): SoundChannel;
经过多次测试,发现以下问题,需要注意。
playMusic:
mp3格式 -> LayaAir调试无法播放,chrome调试正常播放。
wav格式 -> LayaAir调试正常播放,chrome调试正常播放。
ogg格式 -> 未测试
iOS & Android -> 需要mp3格式
微信 -> 需要mp3格式
playSound:
mp3格式 -> LayaAir调试无法播放,chrome调试正常播放。
wav格式 -> LayaAir调试正常播放,chrome调试正常播放。
ogg格式 -> 未测试
iOS & Android -> 需要ogg,wav格式
微信 -> 需要mp3格式
好了,现在才开始解决上面遇到的问题。
问题描述:在使用Laya.SoundManager.playMusic方法播放背景音时,在调试器里面是听不见声音的,使用预加载去加载音效也会报错。
代码调用方法:
加载资源的数组:写入到一个json文件中,url是路径,type是类型
{
"url":"sound/main_menu.mp3",
"type":"sound"
},
{
"url":"sound/game_001.mp3",
"type":"sound"
},
问题就出现在这里,如果我们加载的是是使用playMusic播放的背景音乐,我们需要使用wav格式的背景音乐。
最后感叹一句,在音乐这一块,LayaBox还是做得很差劲的,希望他们能改得更好。