3

私は現在HowlerJSを実装しており、動作しています。ただし、El Capitan を使用する Safari では次のことが起こります。

  1. Safari を開き、HowlerJSを入力して [再生] をクリックすると、読み込みが開始されます。
  2. いくつかのマシンでは、再生されません
  3. ページを更新し、再生をクリックすると動作します。
  4. 開いているSafariを閉じると、再び起こります。

そして、それはiOSでも起こっています。これで、ユーザーがクリックしてオーディオを再生するのを待つ必要があることがわかりました。これが私が行っていることです。

ボタンをクリックすると、オーディオが読み込まれて再生されます。誰もこの問題に直面しましたか? 安定版 1.1.28 を使用しています。

4

1 に答える 1

2

Safari 9 は、最初のページの読み込み時にオーディオを一時停止するようになりました。通常行わなければならない他のすべての歌とダンスに加えて、今度はAudioContextに再開するように指示し、その約束が解決されるまでビジネス ロジックを延期する必要があります。おそらく、このチェックはクリック ハンドラのすぐ内側で行う必要があります。

if(Howler.ctx && Howler.ctx.state && Howler.ctx.state == "suspended") {
    Howler.ctx.resume().then(function() {
        console.log("AudioContext resumed!");
        // fire your callback here
    });
}

Howler 2.0 では既にこれが修正されていると思われますが、1.1.28 の時点では安定したユーザーにはそのような運はありません >_>

于 2016-01-16T03:01:53.010 に答える