4

携帯電話で HTML5 Audio タグを使用してオーディオを再生しようとしています。サウンドをロードしましたが、.play() コマンドを実行しても何も起こりません。デフォルトのコントロールを表示して、その再生ボタンを押してテストし、そのボタンが機能してサウンドが再生されるようにしました。また、アドレス バーから JavaScript を実行してサウンドを再生しようとしましたが、それも同様に機能します。

再生に使用しているコードは次のようになります。

setInterval(function(){
    if(blahblah){
        document.getElementById("player").play();
    }
},500);

サウンドを再生しようとしていることを確認するために、次のように警告を表示します。

setInterval(function(){
    if(blahblah){
        document.getElementById("player").play();
        alert("Played!");
    }
},500);

アラートを見ましたが、サウンドは再生されませんでした。

助けてくれてありがとう:)

4

1 に答える 1

1

ほとんどのモバイル デバイスでは、ユーザー インタラクションの結果である場合にのみオーディオを再生できます。再生コードをボタン クリック イベントに配置すると、動作するはずですが (コードに他のバグがないことを前提としています)、デバイスはsetIntervalユーザーの許可を持っていないと判断するため、オーディオを内部から再生できません。それを再生します。

私が今行っていることは、これが回避策であることを認めています。ボタンクリックイベント内でオーディオを再生してすぐに停止し、setInterval. 後でトリガーしたとしても、デバイスはユーザーによってそのオーディオを再生する許可が与えられていると見なすため、今のところ機能します。ボタン クリック イベント内のコードは次のようになります。

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

setInterval(function(){
    document.getElementById("player").play();
}, 500);

モバイルでは、コンピューターのようにスムーズに再生されない場合があることに注意してください。可能な場合は、別のアプローチを探します。

于 2016-05-07T22:54:08.653 に答える