📅  最后修改于: 2023-12-03 15:29:34.087000             🧑  作者: Mango
BabylonJS是一个基于WebGL的3D游戏引擎,提供了许多强大的功能。在BabylonJS中,我们可以使用BABYLON.Sound
实现声音和音乐的播放。
我们可以使用BABYLON.Sound
的构造函数创建一个声音对象,示例代码如下:
var sound = new BABYLON.Sound("sound", "path/to/sound.mp3", scene, function () {
// 声音加载完成后的回调函数
});
其中,第一个参数为声音的名称,第二个参数为声音文件的路径,第三个参数为场景对象,第四个参数为声音加载完成后的回调函数。
播放声音可以使用以下方法:
// 播放音效
sound.play();
// 暂停音效
sound.pause();
// 停止音效
sound.stop();
如果需要循环播放声音,在创建声音对象时,可以传入一个配置对象,示例代码如下:
var sound = new BABYLON.Sound("sound", "path/to/sound.mp3", scene, function () {
// 声音加载完成后的回调函数
}, {
loop: true
});
播放音乐与播放声音的方式类似,但是播放音乐需要通过BABYLON.Music
创建对象。
var music = new BABYLON.Music("music", "path/to/music.mp3", scene, function () {
// 音乐加载完成后的回调函数
});
播放音乐的方法与播放声音的方法相同。
// 播放音乐
music.play();
// 暂停音乐
music.pause();
// 停止音乐
music.stop();
以下是一个完整的示例代码,演示了如何使用BabylonJS播放声音和音乐。
var canvas = document.getElementById("renderCanvas");
var engine = new BABYLON.Engine(canvas, true);
var createScene = function () {
var scene = new BABYLON.Scene(engine);
var camera = new BABYLON.FreeCamera("camera1", new BABYLON.Vector3(0, 5, -10), scene);
camera.setTarget(BABYLON.Vector3.Zero());
var light = new BABYLON.HemisphericLight("light1", new BABYLON.Vector3(0, 1, 0), scene);
// 创建一个声音对象并播放
var sound = new BABYLON.Sound("sound", "path/to/sound.mp3", scene, function () {
sound.play();
});
// 创建一个音乐对象并播放
var music = new BABYLON.Music("music", "path/to/music.mp3", scene, function () {
music.play();
});
return scene;
}
var scene = createScene();
engine.runRenderLoop(function () {
scene.render();
});