Audio on/off

Stato
Discussione chiusa ad ulteriori risposte.

metallus

Utente Silver
8 Dicembre 2008
0
0
0
55
Salve, gentaglia! Ho un piccolo problema, e non riesco a risolverlo: voglio inserire un semplicissimo comando di on/off per l´audio su un sito. Ovvero, al momento dell´apertura della pagina, cliccando su "play" parte un mp3, cliccando su "stop" ovviamente l´esecuzione dell´mp3 si ferma.

Fermo restando che NON voglio usare flash, e quindi non saranno gradite risposte del tipo "l´unica tua soluzione è flash", ma semplicemente Javascript, come potrei fare? Se imposto autoplay = true l´audio parte regolarmente sia su IE che su firefox(gli unici 2 per cui, per ora, voglio implementare ´sta roba), sono i pulsanti di stop e play che non funzionano affatto. Credo che l´errore sia nel nome di funzione che si deve utilizzare per far partire/stoppare un file utilizzando il plugin (o il controllo activeX nel caso di IE) di windows media player. Qualcuno mi sa aiutare?

Ho provato varie soluzioni, nessuna di esse ha funzionato; in particolare ho implementato senza successo varie versioni delle funzioni playMusic_onclick() e stopMusic_onclick();

Codice:
function playMusic_onclick(){
document.getElementById(´player´).play();
}

function stopMusic_onclick(){
document.getElementById(´player´).stop();
}

oppure:
Codice:
function playMusic_onclick(){
if(navigator.appName.indexOf("Microsoft Internet Explorer") == -1){
	alert("usi firefox!");
	document.getElementById(´player´).play(true);
} else {
	alert("usi IE!");
	document.getElementById(´player´).play();
	}
}

function stopMusic_onclick(){
if(navigator.appName.indexOf("Microsoft Internet Explorer") == -1){
	alert("usi firefox!");
	document.getElementById(´player´).play(false);
} else {
	alert("usi IE!");
	document.getElementById(´player´).stop();
	}
}

Ho provato anche a cambiare l´attributo src sostituendolo di volta in volta con uno inesistente nel caso si cliccasse "stop" e rimettendolo a posto nel caso si cliccasse "play", ma niet.

Ecco il codice nel body:
Codice:
<form name = "form1" id = "form1">
			<input type = "button" id = "playButton" value = "Play" language = Javascript onclick = "return playMusic_onclick()">
			<input type = "button" id = "stopButton" value = "Stop" language = Javascript onclick = "return stopMusic_onclick()">
			</form>

			<object id = "player" CLASSID = "CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6">
			 <param name = "src" value ="percorso_del_file">
			 <param name = "width" value = 0px>
			 <param name = "heigth" value = 0px>
			 <param name = "type" value = "audio/mpeg">
			 <param name = "autoStart" value = "false">
//NOTA: settando autoplay = true il file parte regolarmente sia in IE che in FF

			<embed 
			autostart = "false"
			id ="player" 
			pluginspage = "http://www.microsoft.com/Windows/MediaPlayer/"
			width = "0" heigth="0" 
			type = "application/x-mplayer2" 
			src = "percorso_del_file">

			<noembed>puff!
			</noembed>

			</object>
 
Uhm, avevo provato con firebug. Prima non riusciva a passare nulla a getElementById('player'); poi mi diceva che document.player.play() is not a function.

Da notare una cosa, se faccio un alert come questo

Codice:
alert(document.getElementById('player').innerHTML);

mi stampa regolarmente l'html interno al tag object. Se invece faccio:

Codice:
alert(document.getElementById('player').src);

non mi stampa affatto il percorso del file, ma un ottusissimo e fastidiosissimo "undefined"!!!

Edit: è ovvio che mi manda undefined, dato che nel tag object non c'è nessun attributo esplicito che si chiama "src", la sorgente del file è specificata all'interno di <param>; però se faccio

Codice:
(document.getElementById('player').getElementsByTagName('embed').src);

dovrebbe stamparmi qualcosa, no? E invece sempre undefined!
 
Stato
Discussione chiusa ad ulteriori risposte.