Reputation: 65
I want to play a sound if a selectbox value = 'x'
:
<script src='https://code.jquery.com/jquery-2.2.0.min.js'></script>
<script src='https://cdn.rawgit.com/admsev/jquery-play-sound/master/jquery.playSound.js'></script>
<select name="additiveSport" id="additiveSport" class="form-control is-invalid" aria-describedby="additiveSport-error" aria-invalid="true">
<option value="-">Bitte auswählen...</option>
<option value="Fahrrad">Fahrrad</option>
<option value="Heimtrainer">Heimtrainer</option>
<option value="Spazieren">Spazieren</option>
</select>
<script>
$('#additiveSport').on('change', function() {
if ( this.value == 'Heimtrainer')
{
$.playSound("http://www.noiseaddicts.com/samples_1w72b820/3724.mp3");
}
else
{
$.stopSound;
}
});
</script>
That works, but I want to implement a timer function so that if Heimtrainer
is selected it plays the sound every x seconds, and all other selected it stops the sound.
I thank you very much for your helps.
Upvotes: 0
Views: 102
Reputation: 855
Change data-time
value number in minutes:
var loop;
$('#additiveSport').on('change', function() {
var time = parseInt($(this).find(":selected").data("time")) * 1000;
if ( this.value == 'Heimtrainer')
{
loop = setInterval(function(){$.playSound("http://www.noiseaddicts.com/samples_1w72b820/3724.mp3")}, time);
}
else
{
clearInterval(loop);
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src='https://cdn.rawgit.com/admsev/jquery-play-sound/master/jquery.playSound.js'></script>
<select name="additiveSport" id="additiveSport" class="form-control is-invalid" aria-describedby="additiveSport-error" aria-invalid="true">
<option value="-" data-time="2">Bitte auswählen...</option>
<option value="Fahrrad" data-time="1">Fahrrad</option>
<option value="Heimtrainer" data-time="1">Heimtrainer</option>
<option value="Spazieren" data-time="3">Spazieren</option>
</select>
Upvotes: 1
Reputation: 10713
Something as simple as adding this would work:
//set a timer variable
var mySoundTimer = null;
//set the timer in seconds
var howOften = 12;
//add this inside your activation function
mySoundTimer = setInterval(function() {
$.playSound("http://www.noiseaddicts.com/samples_1w72b820/3724.mp3");
}, howOften * 1000);
//then use this to stop the timer
clearInterval(mySoundTimer);
mySoundTimer = null;
Upvotes: 0