webForumDet fria alternativet

Kontrollera ljud / musik

5 svar · 312 visningar · startad av Fuel

FuelMedlem sedan okt. 20001 285 inlägg
#1

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
#2

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>

nitro2k01Medlem sedan aug. 20039 342 inlägg
#3

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
    }
}
nitro2k01Medlem sedan aug. 20039 342 inlägg
#4

Bara en tanke: Du kanske borde ha en separat stop- och play-funktion?

FuelMedlem sedan okt. 20001 285 inlägg
#5

inget ovan fungerar .. no clue..

nitro2k01Medlem sedan aug. 20039 342 inlägg
#6

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.

133 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)