LayaAir 音乐与音效

音乐与音效·概述

1、HTML5 的音频播放,在当前有两种主流的方式,一种是 Audio 标签播放,另一种是 WebAudio 二进制播放。

2、Audio 属于 dom 元素,带有 ui 界面,在移动端 Audio 属于边下载边播放,适合声音文件比较大的文件,但是 Audio 在移动端会有手势的限制,官方的 gesture-requirement-for-media-playback 属性表明必须有用户的手势操作才可以播放。意思是在移动设备上无法自动播放,必须由用户手动操作后才可以播放。

3、WebAudio 是一种新的声音播放形式,可以加载多个声音进行合成,通过二进制文件解码成浏览器支持的格式进行播放。而且用这个接口甚至可以实现音频普的动画效果,让声音有了合成的功能。

4、音乐与音效作为游戏中常用的基础元素,LayaAir引 擎封装了 WebAudio 与 Audio,在支持 WebAudio 的浏览器上,优先使用WebAudio,在不支持 WebAudio 的浏览器上使用 Audio,最大化兼容所有浏览器对音频格式的支持。

5、通过调用 laya.media.SoundManager API 接口就可以直接播放音频(音乐/音效)。

音乐 VS 音效

1、音乐:指游戏用的背景音乐,采用 laya.media.SoundManager 音频管理类中的 playMusic 方法进行播放,由于是背景音乐,playMusic 方法只能同时播放一个音频文件。

2、音效:采用的是 laya.media.SoundManager 音频管理类中的 playSound 方法,允许同时播放多个音频文件。

音频兼容性

​ 由于音频播放在各个浏览器兼容性不同,在开始使用前,需要做好前期的兼容准备。

1)使用类似“格式工厂”等音频文件转换工具,选择 44100Hz,96kbps 进行转换

2)音频文件尽量小,不仅仅是带宽的限制,还有浏览器音频解码的效率问题

3、建议背景音乐用 mp3 类型,音效用 wav 或者 mp3 类型,如果打包为app,音效只能用 wav 格式

SoundManager

Package laya.media
public class SoundManager
Inheritance SoundManager Inheritance Object

1、SoundManager 是一个声音管理类。提供了对背景音乐、音效的播放控制方法

2、 引擎默认有两套声音方案:WebAudio 和 H5Audio ,播放音效,优先使用 WebAudio 播放声音,如果 WebAudio 不可用,则用H5Audio 播放

3、使用 H5Audio 播放背景音乐(因为使用 WebAudio 会增加特别大的内存,并且要等加载完毕后才能播放,有延迟)  

4、H5Audio 在部分机器上有兼容问题(比如不能混音,播放有延迟等)

Property(属性)
autoReleaseSound : Boolean = true   [static] 音效播放后自动删除。
musicMuted : Boolean   [static] 背景音乐(不包括音效)是否静音。
musicVolume : Number = 1   [static] 背景音乐音量。
muted : Boolean   [static] 背景音乐和所有音效是否静音。
soundMuted : Boolean   [static] 所有音效(不包括背景音乐)是否静音。
soundVolume : Number = 1   [static] 音效音量。
Method(方法)

playMusic(url:String, loops:int = 0, complete:Handler = null, startTime:Number = 0):SoundChannel

[static] 播放背景音乐。背景音乐同时只能播放一个,如果在播放背景音乐时再次调用本方法,会先停止之前的背景音乐,再播发当前的背景音乐。

playSound(url:String, loops:int = 1, complete:Handler = null, soundClass:Class = null, startTime:Number = 0):SoundChannel

[static] 播放音效。音效可以同时播放多个。loops 表示循环次数,0表示无限循环。

setMusicVolume(volume:Number):void   [static] 设置背景音乐音量。音量范围从 0(静音)至 1(最大音量)。

setSoundVolume(volume:Number, url:String = null):void

[static] 设置声音音量。根据参数不同,可以分别设置指定声音(背景音乐或音效)音量或者所有音效(不包括背景音乐)音量。

stopAll():void   [static] 停止播放所有声音(包括背景音乐和音效)

stopAllSound():void   [static] 停止播放所有音效(不包括背景音乐)。

stopMusic():void   [static] 停止播放背景音乐(不包括音效)。

stopSound(url:String):void

[static] 停止声音播放。此方法能够停止任意声音的播放(包括背景音乐和音效),只需传入对应的声音播放地址。

更多 API 请参考官网:https://layaair.ldc.layabox.com/api/?category=Core&class=laya.media.SoundManager

音乐与音效·运用


 

猜你喜欢

转载自blog.csdn.net/wangmx1993328/article/details/85158325