Avatar billede nbj1 Praktikant
23. august 2008 - 20:29 Der er 20 kommentarer og
1 løsning

Fejl i random musik script

hej
har fundet dette script

<script type="text/javascript">
musik=new Array("Eyes.mp3","Akon.mp3");
function spilTilfaeldigMusik() {
for (i=0;i<=musik.length;i++) {
document.write("<div style=\"visibility: hidden;\"><embed src=\""+musik[i]+"\" hidden=\"false\" autostart=\"true\"></embed></div>");
}
var faerdig=false;
while (faerdig=false) {
tal=Math.round(Math.random()*100);
if (tal<=musik.length) faerdig=true;
document.embeds[tal].play();
}
}

</script>
som jeg anbringer i header i body
<body onload "spilTilfaeldigMusik()">
virker dog på en lidt underlig måde, at nå bruger det forsvinder tekst på siden men musikken godt nok, men der skulle gerne være begge dele, noget der kan se hvad der er galdt ?
Avatar billede w13 Novice
23. august 2008 - 21:27 #1
Ja, det er en temmelig gammel kode, du bruger.

Prøv med dette:

<div style="display:none"><embed id="randomsong" autostart="true" hidden="false"></embed></div>

<script type="text/javascript">
var aMusic=["Eyes.mp3","Akon.mp3"];

function playRandomMusic(){
  var iRnd=Math.round(Math.random()*aMusic.length);
  var o=document.getElementById("randomsong");
  o.setAttribute("src",aMusic[iRnd]);
}
window.onload=function(){playRandomMusic()}
</script>

Så kan du også fjerne din onload på Body-tag'et.

Koden er dog helt utestet!
Avatar billede nbj1 Praktikant
23. august 2008 - 22:33 #2
nej w13 det spiller ik
Avatar billede w13 Novice
24. august 2008 - 12:12 #3
Prøv evt.:

<div style="display:none"><embed id="randomsong" autostart="true" hidden="false"></embed></div>

<script type="text/javascript">
var aMusic=["Eyes.mp3","Akon.mp3"];

function playRandomMusic(){
  var iRnd=Math.round(Math.random()*aMusic.length);
  var o=document.getElementById("randomsong");
  o.setAttribute("src",aMusic[iRnd]);
  if(o.play())o.play();
}
window.onload=function(){playRandomMusic()}
</script>
Avatar billede nbj1 Praktikant
24. august 2008 - 12:14 #4
all in header or body ?
Avatar billede w13 Novice
24. august 2008 - 12:22 #5
body.
Avatar billede w13 Novice
24. august 2008 - 12:22 #6
Ja, det hele som det står der. Dvs. i samme rækkefølge og det hele. Div'en over Script-tag'et.
Avatar billede nbj1 Praktikant
24. august 2008 - 12:30 #7
desvære ikke en lyd eller fejl
Avatar billede w13 Novice
24. august 2008 - 12:31 #8
Kan jeg se et link?
Avatar billede nbj1 Praktikant
24. august 2008 - 12:33 #9
ok nu vises en fejl object not supported
Avatar billede w13 Novice
24. august 2008 - 12:35 #10
Prøv at rette:

if(o.play())o.play();

til:

document.embeds[tal].play();

Ellers bliver jeg nødt til at se et link.
Avatar billede nbj1 Praktikant
24. august 2008 - 12:48 #11
ok men det virker stadig ik link
<bgsound src="http://www.c2chat.com/Eyes.mp3">
det virker men er ikke random
Avatar billede w13 Novice
24. august 2008 - 12:52 #12
Vi kan godt prøve med den i stedet.

<bgsound id="randomsong">

<script type="text/javascript">
var aMusic=["Eyes.mp3","Akon.mp3"];

function playRandomMusic(){
  var iRnd=Math.round(Math.random()*aMusic.length);
  var o=document.getElementById("randomsong");
  o.setAttribute("src",aMusic[iRnd]);
}
window.onload=function(){playRandomMusic()}
</script>
Avatar billede nbj1 Praktikant
24. august 2008 - 13:08 #13
great w13 det virker ok der laves random nu ok fint men skulle helst også fortsætte med næste stk musik, kan du flette det ind ?
Avatar billede w13 Novice
24. august 2008 - 13:13 #14
Men det kunne din embed-kode jo heller ikke. Og hvad er "næste stk. musik"? Nummeret er jo valgt tilfældigt? Men betyder det bare, at afspilningslisten skulle starte et tilfældigt sted?
Avatar billede nbj1 Praktikant
24. august 2008 - 13:18 #15
jo det fint nok det du har lavet, men når dette stk musik er færdigt så ville det være fedt hvis man på en måde kunne flete ind at den så tog næste stykke musik
Avatar billede w13 Novice
24. august 2008 - 13:18 #16
Eneste måde er at gemme manuelt, præcis hvor lange de forskellige nr. er i sekunder:

<bgsound id="randomsong">

<script type="text/javascript">
var aMusic=["Eyes.mp3","Akon.mp3"];
var aMusicLength=[430,295];
var iRndMusic=Math.round(Math.random()*aMusic.length);

function playRandomMusic(){
  if(iRndMusic+1>aMusic.length)iRndMusic=0;
  else iRndMusic++;

  var o=document.getElementById("randomsong");
  o.setAttribute("src",aMusic[iRndMusic]);

  window.setTimeout("playRandomMusic()",aMusicLength[iRndMusic]);
}
window.onload=function(){playRandomMusic()}
</script>
Avatar billede w13 Novice
24. august 2008 - 13:19 #17
Hov, sådan her:

<bgsound id="randomsong">

<script type="text/javascript">
var aMusic=["Eyes.mp3","Akon.mp3"];
var aMusicLength=[430,295];
var iRndMusic=Math.round(Math.random()*aMusic.length);

function playRandomMusic(){
  if(iRndMusic+1>aMusic.length)iRndMusic=0;
  else iRndMusic++;

  var o=document.getElementById("randomsong");
  o.setAttribute("src",aMusic[iRndMusic]);

  window.setTimeout("playRandomMusic()",aMusicLength[iRndMusic]*1000);
}
window.onload=function(){playRandomMusic()}
</script>

Så skal du bare indtaste sangenes længde i sekunder i linjen:

var aMusicLength=[430,295];
Avatar billede nbj1 Praktikant
24. august 2008 - 13:33 #18
ok takker ser ud til at virke med det også mange tak
Avatar billede w13 Novice
24. august 2008 - 13:39 #19
Så lidt, og tak for point! ;)
Avatar billede nbj1 Praktikant
24. august 2008 - 13:41 #20
hmm var mere værd for mig så bare flot klaret
Avatar billede olebole Juniormester
24. august 2008 - 16:26 #21
<ole>

Brug i stedet en mp3-afspiller, som er skrevet i Flash. Så kan koden gøres valid  ;o)

/mvh
</bole>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester