JavaScript と HTML5 要素を使用して、コールバック関数からオーディオ ファイルを再生できるようにしたいと考えています。私が読んだ限りでは、ほとんどのモバイル デバイスで HTML5 オーディオを再生する唯一の方法は、ユーザー インタラクション (つまり、ボタンのクリックなど) によるものです。
私のシナリオは少し異なります。ボタン クリック イベントは、コールバック関数を使用して ajax 呼び出しを行い、返された結果に基づいて、別のサウンドが再生されることになっています。これはデスクトップ ブラウザでは問題なく動作しますが、Android と iPad の両方がこれをサポートしていないようです。
誰かが回避策を知っていますか?
オーディオ オブジェクトの初期化方法などを示すサンプル コード:
var sound = new Audio('Sample.wav');
var sound2 = new Audio('Sample2.wav');
/// Button events etc here, stock standard stuff
function MyCallBack(e)
{
if(e.someValue)
sound.play();
else
sound2.play();
}
編集: 以下に概説する同様のソリューションを使用して、この問題を解決しました。私が再生したユーザーイベントで、すぐにサウンドを一時停止しました。コールバックが戻ったら、適切なサウンドの再生を再開しました
hit.play(); hit.pause(); fail.play(); fail.pause();