2017-08-16 5 views
-1

私の目的は、携帯電話のキーパッドの働きに似たクリック音色のファイルを再生することですが、私がここで見つけたすべての方法は、サウンドファイルが重複していることから遅れているようです。つまり、検索フィールドに入力すると、どのくらい速く入力するか。

私は、次のコードを使用しています:入力フィールドのキーを押しても音を遅らせる方法はありますか?

$("#search") // loop each menu item 
    .each(function(i) { 
    if (i != 0) { // only clone if more than one needed 
     $("#beep") 
     .clone() 
     .attr("id", "beep-" + i) 
     .appendTo($(this).parent()); 
    } 
    $(this).data("beeper", i); // save reference 
    }) 
    .keydown(function() { 
    $("#beep-" + $(this).data("beeper"))[0].play(); 
    }); 
$("#beep").attr("id", "beep-0"); // get first one into naming convention 

しかし、この方法の結果を時々クリックで、時々ありません。

答えて

2

ビープ音が短く、pause()の場合は、currentTimeを0に戻してください。非常にうまくいくようです。

$("#search").on("keyup",function(){ 
    //console.log("ok"); 
    $("#beep")[0].pause(); 
    $("#beep")[0].currentTime=0; 
    $("#beep")[0].play(); 
}); 

CodePen

オーディオファイルの先頭で一時停止と交換するトリックです。それ以外の場合は、ファイルが終了する前にifおよびeventが発生し、ファイルがすでに再生されています。これは、「スキップされた」イベントの印象を与えます。

関連する問題