Crafty.audio
添加声音文件并播放它们。选择浏览器支持的最佳格式。由于HTML5音频的特性,跨浏览器功能需要三种音频文件。这些格式是MP3,OGG和WAV。 声音在停止之前不会静音,非暂停状态下也不会静音。 当使用 Crafty.pause() 暂停时声音就不具有任何效果了。
可以同时播放的声音是 Crafty.audio.maxChannels 所定义的最大数量。默认值是7。
方法
- .add()
- .create()
- .isPlaying()
- .mute()
- .pause()
- .play()
- .remove()
- .setChannels()
- .stop()
- .supports()
- .toggleMute()
- .togglePause()
- .unmute()
- .unpause()
Crafty.audio.add()
public this Crafty.audio.add(String id, String url)
- id
用来引用音频的字符串
- url
指向声音文件的字符串。
public this Crafty.audio.add(String id, Array urls)
- urls
指向同一个声音的不同格式的URL数组,选择第一个可以播放的声音。
public this Crafty.audio.add(Object map)
- map
键值对,其中键为id,值为
url
或urls
加载一个要播放的声音。由于HTML5音频的特性,跨浏览器功能需要三种音频文件。这些格式是MP3,OGG和WAV。
通过URL数组将决定浏览器可以播放哪种格式,选择的文件会覆盖其他的文件。
接受一个对象,其中键是音频名称,URL或URL数组(确定要使用的类型)。
当你使用Crafty.audio.play
时,ID将指向你所要使用的声音
例子
//adding audio from an object
Crafty.audio.add({
shoot: ["sounds/shoot.wav",
"sounds/shoot.mp3",
"sounds/shoot.ogg"]
});
//adding a single sound
Crafty.audio.add("walk", [
"sounds/walk.mp3",
"sounds/walk.ogg",
"sounds/walk.wav"
]);
//only one format
Crafty.audio.add("jump", "sounds/jump.mp3");
Crafty.audio.create()
public this Crafty.audio.create(String id, String url)
- id
用来引用声音的字符串。
- url
指向声音文件的字符串。
使用给定的ID和资源创建音频时。Crafty.audio.add
是更灵活的接口,它允许跨浏览器兼容性。
如果不支持声音文件扩展名,则返回false;否则返回音频资源。
Crafty.audio.isPlaying()
public Boolean Crafty.audio.isPlaying(string ID)
- {string} id
音频对象的ID
- [Returns]
a Boolean indicating whether the audio is playing or not
检查给定ID的音频是否正在播放(至少在一个频道上)。
例子
var isPlaying = Crafty.audio.isPlaying('music');
Crafty.audio.pause()
public this Crafty.audio.pause(string ID)
- {string} id
要暂停的音频对象ID
暂停ID参数指定的音频实例
例子
Crafty.audio.pause('music');
Crafty.audio.play()
public this Crafty.audio.play(String id)
public this Crafty.audio.play(String id, Number repeatCount)
public this Crafty.audio.play(String id, Number repeatCount, Number volume)
- id
用来引用声音的字符串
- repeatCount
重复文件的次数,其中- 1代表永远重复。
- volume
卷可以是0到1之间的数字。
- [Returns]
用于播放声音的 audio 元素。当因为缺失开启频道而调用失败时返回 Null.
将会播放之前使用ID调用 Crafty.audio.add
的音频。
默认最大5个频道,以便相同的声音可以同时播放,除非所有的频道都在播放。
注意HTML5音频的实现充其量是漏洞百出的。
例子
Crafty.audio.play("walk");
//play and repeat forever
Crafty.audio.play("backgroundMusic", -1);
Crafty.audio.play("explosion",1,0.5); //play sound once with volume of 50%
Crafty.audio.remove()
public this Crafty.audio.remove([String id])
- id
用来引用声音的字符串。
将停止声音并删除对音频对象的所有引用,允许浏览器释放内存。如果没有id,所有的声音都将被删除。
这个函数使用在 Crafty.path 中设置的音频路径是为了从资源对象中移除音频。
例子
Crafty.audio.remove("walk");
Crafty.audio.stop()
public this Crafty.audio.stop([Number ID])
停止播放声音。如果没有设置id,则停止播放的所有声音。
例子
//all sounds stopped playing now
Crafty.audio.stop();
Crafty.audio.supports()
public this Crafty.audio.supports(String extension)
- extension
用于检查音频支持情况的文件扩展名
如果浏览器认为它可以播放给定的文件类型,则返回true,否则为false。
Crafty.audio.toggleMute()
public this Crafty.audio.toggleMute()
静音或取消静音每个音频实例。在暂停或播放根据状态切换。
例子
//toggle mute and unmute depending on current state
Crafty.audio.toggleMute();
Crafty.audio.togglePause()
public this Crafty.audio.togglePause(string ID)
- {string} id
将要暂停的音频对象ID
切换ID参数指定的音频实例的暂停状态。
例子
Crafty.audio.togglePause('music');
Crafty.audio.unmute()
public this Crafty.audio.unmute()
取消静音每个音频实例。
例子
Crafty.audio.unmute();
Crafty.audio.unpause()
public this Crafty.audio.unpause(string ID)
- {string} id
要激活的音频对象的ID
恢复播放ID参数指定的音频实例
例子
Crafty.audio.unpause('music');