2017-08-08 15 views
1

私の状況:"seeked"イベントはHTMLオーディオ要素では機能しませんか?

私はオーディオ要素を持っており、websocket経由で接続します。私が一時停止、演奏などをするとき、私の部屋の他の人のオーディオ要素は同じです。

問題がある:

イベントを求めていると、誰かがシークバーを果たしている場合、私は、WebSocketを、数千を送信します。したがって、シークされたイベントは、シークイベントと同じことを除いて、完璧でした。

私の質問は簡単です。 audio html要素のseekedイベントは機能していますか?

w3cSchoolでも、そのイベントは機能しないようです。 https://www.w3schools.com/tags/tryit.asp?filename=tryhtml5_av_event_seeked2

sharedAudio[0].onseeked = function() { 
     session.signal({ 
      type: 'seeking', 
      data: sharedAudio[0].currentTime 
     }, function(error) { 
      if (error) { 
       console.log('Error sending signal:', error.name, error.message); 
      } 
     }); 
    }; 

私が何か間違ったことをしましたか?

イベントが正しく動作しない場合は、同じ効果をシミュレートするソリューションがありますか?

PS:すみません。

+0

'onseeked'イベントはW3 Schoolsのサイトで私のために働いていました。なぜそれがあなたのために仕事をしなかったと言いましたか?どのブラウザを使用していますか? – MKR

+0

私はChrome V59を使用しています。私にとって、シーク・バーを動かすと、アラート・ボックスが即座にポップアップします。私の場合、ビデオの例のように求めることを終えたら、「シークド」というイベントが発生します:https://www.w3schools.com/tags/tryit.asp?filename=tryhtml5_av_event_seeked_seeking。私はイベントを誤解しましたか? – Arcades

+0

タイムバーをクリックすると、新しい位置に移動できます。どのようにドラッグアンドドロップが機能しないのかそれは言いたいことですか? – MKR

答えて

0

seekedの位置を無視するために、以下のスクリプトを使用することができます。

<script> 
var previousseekpos = 0; 
var vid = document.getElementById("myVideo"); 
vid.addEventListener("seeked", function() { 
    var currentSeekPos = this.currentTime; 
    if((currentSeekPos - previousseekpos) > 2.0) 
    { 
     alert("Seek operation completed!"); 
     previousseekpos = currentSeekPos; 
    } 
}); 
</script> 

onseekedイベントはエレガントなオーディオコントロールのためのスクロールバーのキャレット位置のドラッグアンドドロップを処理しませdoest。

+0

ありがとうございますが、それは私が必要なものではありません。これは解決策ではありません。なぜなら、私がわずか1秒間動くと、イベントは引き起こされず、アプリケーションが壊れるからです。 – Arcades

+0

私はそれが完璧な解決策ではないことを知っています。だから私はドラッグ/ドロップの動作についてのメモを追加したのです。あなたは時間の限界を調整することができ、0.5秒のような小さな値を使うことができます。また、キャレットを左右に動かすことができるので絶対的な価値を考慮する必要があります。私はそれらをあなたのために残しておきました。 – MKR

+0

問題は、値が小さいbeginnigと同じです。誰かが1:00から2:00にドラッグすると、私のアプリは60/.05 = 120のリクエストを送信し、私はそれを望んでいません。私はvideo.seekedイベントがaudio.seekedと同じであると思っていただけで、そうは思われませんでした。 audio.seekedイベントとaudio.seekingイベントは同じことを行います。 – Arcades

関連する問題