📜  BabylonJS-播放声音和音乐(1)

📅  最后修改于: 2023-12-03 15:29:34.087000             🧑  作者: Mango

BabylonJS-播放声音和音乐

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();
});