小编Joa*_*and的帖子

Audio.play() 导致微小的延迟

问题: 我使用 Three.js 制作了一个类似 flappybird 的游戏。每次我点击屏幕时,都会发出“拍打”的声音。然而,播放此音频会导致轻微的延迟,从而使游戏不太流畅。如果我删除声音,所有滞后都会消失。滞后仅在播放音频时出现,而不是在音频播放时出现。

音频设置: 首先我设置音频如下:

var soundFly = new Audio();
soundFly.src = "https://dl.dropbox.com/s/tj7mxg26egzo4zx/flap.wav?dl=0";
soundFly.preload = "auto";
Run Code Online (Sandbox Code Playgroud)

接下来,我在开始游戏时加载所有音频(单击按钮时):

function loadAudio()
{
soundFly.play().then(function () {
   soundFly.pause()
   }).catch(function (e) {
            console.log("soundFly - " + e)
            });           
};
Run Code Online (Sandbox Code Playgroud)

然后,每次我触摸屏幕时,我都会播放声音:

this.soundFly.play().catch(function (e)     {
    console.log("soundFly - " + e)
})
Run Code Online (Sandbox Code Playgroud)

这很好用,但会出现微小的滞后。

渲染: 这就是我设置场景渲染的方式:

var clock = new THREE.Clock();
var delta=0;
clock.start(); //makes rendering timedependent

var render = function ()
{

delta = clock.getDelta();

//All movement is set using speed*delta

requestAnimationFrame(render);
renderer.render(scene, camera);
}; …
Run Code Online (Sandbox Code Playgroud)

javascript audio ios three.js

3
推荐指数
1
解决办法
1637
查看次数

标签 统计

audio ×1

ios ×1

javascript ×1

three.js ×1