FuelMedlem sedan okt. 20001 285 inlägg dessa enkla rader startar / stoppar ju ett ljud
document.embeds[snd].play();
document.embeds[snd].stop();
men hur kollar jag om ljudet redan är igång / spelas ? hur får jag detta dessutom att fungera i Mozilla ?
Detta gäller för korta wav filer som ska kunna avlyssnas på en hemsida.. start & stopp
FuelMedlem sedan okt. 20001 285 inlägg vad gör jag för fel ?
function doSnd(snd)
{
var thesound = document.getElementById(snd);
var goforit = thesound.IsReady();
if (goforit) {
var running = thesound.IsPlaying();
if (running) {
thesound.stop();
} else {
thesound.play();
}
} else {
alert("Funker icke !!");
}
}
<a href="#" onclick="javascript:doSnd('ljud1');">Lyssna</a>
<embed src="sounds/trallallalaa.wav" name="ljud1" id="ljud1" hidden="true" autostart="false" loop="false" mastersound></embed>
Till att börja med kan det bero på att dessa metoder ser olika ut beroende på spelare (Quicktime, RealPlayer etc). Om man utgår ifrån att du har rätt id i varen snd, så måste du vänta på att ljudet ska laddas, sä här:
function doSnd(snd)
{
var thesound = document.getElementById(snd);
var goforit = thesound.IsReady();
if (goforit) {
var running = thesound.IsPlaying();
if (running) {
thesound.stop();
} else {
thesound.play();
}
} else {
setTimeout ("doSnd('"+snd"');",100) // Vänta 100 millisekunder och försök sen igen
}
}
Bara en tanke: Du kanske borde ha en separat stop- och play-funktion?
FuelMedlem sedan okt. 20001 285 inlägg inget ovan fungerar .. no clue..
Glömde ett plustecken ovan, pröva detta:
function doSnd(snd)
{
var thesound = document.getElementById(snd);
var goforit = thesound.IsReady();
if (goforit) {
var running = thesound.IsPlaying();
if (running) {
thesound.stop();
} else {
thesound.play();
}
} else {
setTimeout ("doSnd('"+snd+"');",100) // Vänta 100 millisekunder och försök sen igen
}
}
Dock inte säkert att det funkar ändå(Brukar inte testa kod när jag svarar p inlägg), men du kan ju pröva om du inte såg felet innan.