0

私はjQueryを使用していますが、リンクをクリックするとオーディオが再生されるようにすると、iPadで正常に動作することに気付きました。私が理解しているように、ユーザーが明示的に何かをクリックしたため、オーディオの再生のみが許可されます。ただし、リンクをクリックすると何かがフェードインし、fadeInコールバックがオーディオを再生するようにすると、リンクをもう一度タップしない限り (要素が既にフェードアウトした後)、iPad では機能しなくなります。の)。次に例を示します。

http://jsfiddle.net/3sg2v/

デスクトップ ブラウザでは、リンクを 1 回クリックするだけで音声が再生されることに注意してください。

このように動作するデバイスは iPad だけではないことがわかりました。Android 4.1.2 を実行している Motorola Xoom で上記の例を試してみたところ、ストック ブラウザと Chrome 18.0.1025469 の両方で同じ動作が得られました。ただし、Android 2.3.4 を実行している Motorola Droid 2 では、ストック ブラウザと Firefox 20.0.1 の両方で動作します (オーディオを再生するには、リンクを 1 回タップするだけで済みます)。

私の質問は、この動作を検出する最もエレガントな方法は何ですか?

4

1 に答える 1

0

これはうまくいくようです(jsFiddle demo):

test_audio_played = false;

$('<audio>').on('play', function() {
    test_audio_played = true;
})[0].play();

setTimeout(function() {
    alert(test_audio_played);
}, 1);

デスクトップ ブラウザと Android 2.3.4 を実行している Motorola Droid 2 はすべて予想どおり "true" と警告し、iPad と Android 4.1.2 を実行している Motorola Xoom は予想どおり "false" を警告します。

于 2013-04-29T15:10:35.860 に答える