0

私は新しい注文がアプリに入ったときに音を再生するWebアプリケーションを構築しています。デスクトップ上でこれはすべてうまく動作します。Webアプリケーションでプログラムでオーディオを再生する方法はありますか?

ただし、iOSでは音声がまったく再生されません。 investigationの後で、私は、iOSがオーディオを再生することに制限があることを発見しました。

  • だけがユーザーとの対話の後
  • のみのページがアクティブな間とフォアで
  • のみ携帯電話の画面には、ので、あなたのオーディオオフから画面を維持する方法はありません
  • 上にある間最初の曲の後に停止します。

プログラムでオーディオを再生できるようにするユーザーの許可を求める方法はありますか?

+0

おそらく、意図的にはありません。ランダムなウェブサイトからの迷惑を最小限に抑えることです。 Web通知APIを調べることはできますが、そこでも音声通知は可能ではありません。 – deceze

+0

ありがとうございます。うん、通知APIは健全なプロパティを持っていますが、それはまだどのブラウザでもサポートされていません... –

答えて

0

はい、それは本当です!ユーザー要求の前にオーディオバッファーがありません。 目ののポップアップやアニメーションを使って、タップのユーザーを引き付けます。 あなたはinitを再生し、同時に次のコード行を一時停止すると、その後にプログラムでオーディオを再生できるようになります。

私の記憶に...アンドロイドとiOSには同じ動作がありません。これは、このトリック(ワンクリックまたはワンタッチ)でバッファを開始できるオーディオの最大数です。あなたはそれをテストする必要があります。

同じオーディオを同じ瞬間に複数回再生したい場合: 同じソースでより多くのオーディオhtmlタグを作成する方がよいでしょう。私はjsのファンですが、今度はHTML形式のHTMLタグを持つ方が良いです。

var EXE_JUST_ONE_TIME = false; 

    document.addEventListener("touchstart" , function(e) { 

    if (EXE_JUST_ONE_TIME == false){ 

    EXE_JUST_ONE_TIME = true; 

    document.getElementById("LaserShot").play(); // need for play pause just for buffering start 
    document.getElementById("LaserShot").pause(); 
    // now you can play programmability from js 
    document.getElementById("LaserShot_CLONE").play(); 
    document.getElementById("LaserShot_CLONE").pause(); 

    } 
    else if(EXE_JUST_ONE_TIME = true){ 

    document.getElementById("MakeReadyotherAudio1").play(); 
    document.getElementById("MakeReadyotherAudio1").pause(); 

    EXE_JUST_ONE_TIME = 'NOMORE' 

    } 


    } 
関連する問題