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';
}

var ax = 0; var ay = 0; var shakemax = 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 に答える