2017-09-23 11 views
1

:上記のコードが呼び出されるとPhoneGapのオーディオ遅れ

var audio = new Audio('sound.mp3'); 
audio.play(); 

、全体のアプリはラグ/遅延を取得します。約200〜500ミリ秒後、アプリは通常通り続き、サウンドを再生します。 2〜3回音を鳴らした後は、キャッシュされているか何かがあるように見えます。

これは、PhoneGapアプリでiOSをテストする場合に発生します。 Chromeデスクトップで動作しているとうまくいきます。

+0

あなたがテストしている電話機が遅いかもしれませんか? – PHPglue

答えて

0

アプリを起動したときにサウンドを読み込んでキャッシュに保存することをお勧めします。その後、必要なときに再生してください。それはラップを減らすか、それを省略する必要があります。

+0

ありがとうございます。私は試してみることができるように、サウンドをキャッシュに読み込むための良い解決策を発見した。 – Rasmus

+1

このプラグインは非常に役に立ちます:https://github.com/floatinghotpot/cordova-plugin-nativeaudio –

0

基本的に、200〜500 msの遅延はバグでもパフォーマンス上の問題でもなく、可能なダブルタップを検出するために必要な機能です。

1)の代わりにクリックイベントのタッチイベントの組み合わせを使用するには、あるいは、

2)fastClick Touseあなたが持っていない場合はjQueryモバイル:

ソリューションは、その遅れを取り除くことです。 fastclickが機能しない場合

3)、これを使用する:

 $('yourElement').on('touchstart', function (startEvent) {}); 
+0

私はすでにfastclickとtouchstartを使用しています。これはちょうどタッチスタートで起こるのではなく、遅れはオーディオが触れることなく再生されるときに発生します。 – Rasmus

+1

これはAppキャッシュの問題かもしれません。あまりにもそれを試してみてください。それが助けになるかもしれない。 –

+0

私はソウルティオンはあなたが言ったものだと思います。演奏する前に音を鳴らす必要があります。最初に音を読み込むのが遅れの原因です。 – Rasmus

0

を、これはmp3のリンクデバイスは、それを再生する前に、ファイルをダウンロードする必要があるので、遅れているため。遅滞なく音楽を再生したい場合は、ストリーミングメディアが必要です。

Wowzaサーバーでは、m3u8(HLS)プロトコルを使用してストリーミングメディアを設定できます。