2017-02-16 4 views
0

実験でオーディオファイルを1回再生するように被写体を制限しようとしています。私は次のhtmlコードを使用しています:オーディオを一度再生できるようにするhtml

<audio src="sound.mp3" type="audio/mp3" preload="auto" controls="controls" oncontextmenu="return false;">Audio could not be loaded.</audio> 

htmlを使用する方法はありますか?どうすれば私はこれをjavascriptに適応させることができますか?

ありがとうございました!

答えて

1

"オーディオファイルを1回再生する"というルールは、ユーザーが再生ボタンをクリックしたとき、またはユーザーがトラック全体を聴いた後のときのルールによって異なります。

ネイティブオーディオコントロールを表示したまま無効にすることはできません。オーディオコントロールを操作するには、JS、HTML、およびCSSを使用して独自のコントロールを使用する必要があります。そこにはすでにライブラリがあります。

また、あなたが親切であれば、の再生をヒットした後、の音声を停止することができます。ここで

は、私がどうなるのかです:

  • は独自のプレーヤーを追加するプラグインを使用する場合にのみ「演奏」としてファイルをマークJavaScriptを書く
  • ボタン停止/再生を示し
  • を制御します。プレイヤーは、停止ボタンを押した。..
    1. 、曲の終わりがREAあるまたは
    2. オーディオが「演奏」と見なされると
  • をCHED、再生ボタンを無効に
+0

ありがとう@ライアン、これは非常に便利です! – Wolfgang

0

私はこれが

<div id="audioDiv"> 
    <audio onclick="playedOnce()" src="sound.mp3" type="audio/mp3" preload="auto" controls="controls" oncontextmenu="return false;">Audio could not be loaded.</audio> 
</div> 

audioDiv

と呼ばれ、その後、どこか

function playedOnce(){ 
    var children = document.getElementById("audioDiv").getElementsByTagName('*'); 
    for(var i = 0; i < children.length; i++){ 
     children[i].disabled = true; 
    } 

}

今、明らかにこれはこのJavaScriptのメソッドを追加DIVでオーディオを入れているだろう方法あなたが1つのオーディオしか持っていないと仮定しているシェルメソッドでは、おそらくjavascriptメソッドはどちらを無効にするかを決定するパラメータを取ります。 さらに、tユーザーは単にページを更新するだけではないと仮定しています。ユーザーがページをリフレッシュしても隠しておきたい場合は、PHP sessionsを見てください!

希望すると便利です。

+0

はあなたの迅速な答えSishaarいただきありがとうございます!私はあなたのコードを試してみました:。

でも、それを何度もクリックすると再生されます。あなたのコードを正しい方法で実装しているかどうか知っていますか? – Wolfgang

+0

ねえ!私は先に進み、divのすべての子を無効にするコードを編集しました。これは

+0

ありがとう!私は編集されたバージョンを試しましたが、それはまだ何回も私がクリックすると再生します。 – Wolfgang

関連する問題