0

我想在摇晃 iPhone 时触发音频文件。我可以通过按下按钮来播放音频。在我第一次按下按钮后,我可以在摇晃时播放音频。但是在第一次进入页面时,加速度计不会播放音频。代码如下,一个小测试页面位于:

pineappleapps.com/zdev/html5test ((需要 iPhone 或 iPod iOS v4.2 测试)

场景如下:

1)刷新页面并倾斜iPhone并出现播放警报但没有音频

2)按棒球按钮并出现警报,然后播放音频

3)现在倾斜手机并出现警报,然后播放音频

4)再次刷新页面并倾斜手机,再次出现警报但没有音频

必须与初始化音频的按钮有关。任何帮助将不胜感激。

代码:

javascript:

function baseball()
{
    alert('play');
    document.getElementById('bbaudio').play();
    var t=setTimeout("enableShake()",3000);
}
function enableShake()
{
    document.getElementById("shakeE").innerHTML = '1';
}

变量 ax = 0; 变量 ay = 0; 变种摇最大= 0;

window.ondevicemotion = function(event) 
{
    ax = event.accelerationIncludingGravity.x;
    ay = event.accelerationIncludingGravity.y;
    az = event.accelerationIncludingGravity.z;

    if(ax > shakemax)
    {
        shakemax = ax;
    }

    var shake = document.getElementById("shake");
    shake.innerHTML = ax;

    if(ax > 8.0)
    {
        var se = document.getElementById("shakeE").innerHTML;
        if(se == '1')
        {
            document.getElementById("shakeE").innerHTML = '0';
            baseball();
        }

    }
}

html:

<br />
<br />
<input type="submit" onclick="baseball()" value="baseball"/>    
<br />
<br />
<br />
<br />      
<div id="shake">0</div> 
<div id="shakeE">1</div>
<audio id='bbaudio' src="baseball_hit.wav" controls="controls"></audio>
4

1 回答 1

0

这篇链接的文章中,它说您可以通过首先加载它们来影响声音。我不知道这是否可行,因为我还没有开始为 iPhone 开发。但我希望这会有所帮助!

于 2011-03-10T17:25:26.147 回答