Avatar billede xbobby Nybegynder
14. maj 2004 - 21:19 Der er 6 kommentarer og
4 løsninger

Højre klik afspiller en lille wawe fil

Hvordan afspiller jeg en wave fil, når jeg højre klikker.

Konkret javascript eksempel ønskes, da jeg ingen ørn er til JavaScript.

Hvad siger eksperterne?
Avatar billede twm Nybegynder
14. maj 2004 - 21:32 #1
Skal det virke både i IE og NS?
Avatar billede xbobby Nybegynder
15. maj 2004 - 10:36 #2
Hvis du har kode til begge browsere vil det være perfekt, men mindre kan gøre det.
Skal jeg vælge, så er IE vigtigst - okay?
Avatar billede twm Nybegynder
16. maj 2004 - 10:33 #3
Avatar billede xbobby Nybegynder
16. maj 2004 - 11:18 #4
Hej twn
Jeg har været inde og kikke på de to link, men har ikke kunne finde noget konkret kode til det som jeg ønsker, nemlig kombinationen højreklik og afspilning af wawe fil.

Så gider du kopiere den kode du har set fra en af de to link du har fundet ind her, så jeg kan teste den.

Hvis det virker så er de 60 point dine :-)
Avatar billede twm Nybegynder
16. maj 2004 - 16:12 #5
Her er en hurtig omskrivning af eksemplet så den også afspilles når højrekliks context menu aktiveres, den forudsætter at der ligger en musikfil i file://c:/windows/media/tada.wav(Windows XP):
<html>
<head>
<!--
This file retrieved from the JS-Examples archives
http://www.js-x.com
1000s of free ready to use scripts, tutorials, forums.
Author: JS-Examples - http://www.js-examples.com/
-->

<script>

var _s=0; /* just a counter - must start at 0 - do not change */
var Sounds = new Array();
    Sounds[_s++] = "file://c:/windows/media/tada.wav";  /* add any sound that will be pre-loaded */
//    Sounds[_s++] = "rebin.wav"; /* add any sound that will be pre-loaded */
//    Sounds[_s++] = "tada.wav";  /* add any sound that will be pre-loaded */
//    Sounds[_s++] = "tada.wav";  /* add any sound that will be pre-loaded */


/* Frob below at own risk */
document.write('<BGSOUND ID="soundContainer_IE_DOM">');

/*
* Browser-Sniffer
*/
var isIE4 = (navigator.appVersion.indexOf("MSIE")!=-1 && document.all)? true:false;
var isNS4 = (navigator.appName=="Netscape" && navigator.plugins["LiveAudio"])? true:false;
var isDOM = document.getElementById?true:false;
var isOK = isIE4||isNS4||isDOM;

if (isIE4){
    document.oncontextmenu=playRightClick;
}else{
    document.captureEvents(Event.MOUSEDOWN || Event.MOUSEUP);
    document.onmousedown=playRightClick;
}

onload=PreLoadSounds; /* this will make the pre-loading occur - put in body tag onload="PreLoadMusic()" if you want */

function PreLoadSounds()
{
  if (!isOK)
    return;

  /*
  * This block creates a container-object to hold all the hidden pre-loaded sound objects.
  */
  if (isNS4)
    SoundDiv = new Layer(0,window);
  else
    document.body.insertAdjacentHTML("BeforeEnd","<DIV ID='SoundDiv' STYLE='position:absolute;'></DIV>");

  /*
  * This block writes all the sound objects into the container-object.
  */
  var Str = '';
  for (i=0;i<Sounds.length;i++)
    Str += "<EMBED SRC='"+Sounds[i]+"' AUTOSTART='FALSE' HIDDEN='TRUE'>"

  if(isDOM)
    document.getElementById("SoundDiv").innerHTML=Str;
  else if(isIE4)
    SoundDiv.innerHTML=Str;
  else
  {
    /* must be NS4 */
    SoundDiv.document.open();
    SoundDiv.document.write(Str);
    SoundDiv.document.close();
  }

  /*
  * This finds the object -- we want to set an access method to make it play or stop.
  */
  soundObject = null;
  if(isDOM)
    soundObject = document.getElementById('soundContainer_IE_DOM');
  else if(isIE4)
    soundObject = document.all.soundContainer_IE_DOM;
  else
    soundObject = SoundDiv;
  soundObject.control = auCtrl;
}

function auCtrl(SoundsArrayIndex,play)
{
  if (isIE4||isDOM)
    this.src = play? Sounds[SoundsArrayIndex]:'';
  else
    eval("this.document.embeds[SoundsArrayIndex]." + (play? "play()":"stop()"))
}

function playRightClick() { if (window.soundObject) soundObject.control(0,true); }
function playSound(SoundsArrayIndex) { if (window.soundObject) soundObject.control(SoundsArrayIndex,true); }
function stopSound(SoundsArrayIndex) { if (window.soundObject) soundObject.control(SoundsArrayIndex,false); }
</script>


</head>
<body>

<A HREF="#"
  onMouseOver="playSound(0)"
  onMouseOut="stopSound(0)">Move mouse over to play sound #1</A>
<BR>
<A HREF="#"
  onMouseOver="playSound(1)"
  onMouseOut="stopSound(1)">Move mouse over to play sound #2</A>

<BR><center><a href='http://www.js-x.com'>JS-X.com</a></center>
</body>
</html>
Avatar billede twm Nybegynder
16. maj 2004 - 16:16 #6
Den bliver fanget her:
if (isIE4){
    document.oncontextmenu=playRightClick;
}else{
    document.captureEvents(Event.MOUSEDOWN || Event.MOUSEUP);
    document.onmousedown=playRightClick;
}

Hvor jeg fortæller den at den skal aktivere playRightClick funktionen ved højreklik.
Den her er metoden der tager i mod, og afspiller index 0 i musik array du kan opstille i toppen under Sounds(Se nedenfor):
function playRightClick()
{
    if (window.soundObject)
        soundObject.control(0,true);
}

var Sounds = new Array();
    Sounds[_s++] = "file://c:/windows/media/tada.wav";  /* add any sound that will be pre-loaded */
//    Sounds[_s++] = "rebin.wav"; /* add any sound that will be pre-loaded */
//    Sounds[_s++] = "tada.wav";  /* add any sound that will be pre-loaded */
//    Sounds[_s++] = "tada.wav";  /* add any sound that will be pre-loaded */
Avatar billede twm Nybegynder
16. maj 2004 - 16:37 #7
<html>
    <head>
        <script>
            var sound = "file://c:/windows/media/tada.wav";
            document.oncontextmenu=playRightClick;
            document.writeln ('<embed ID="soundContainer" src="file://c:/windows/media/tada.wav" height="1" width="1" autostart="false" hidden="true">');
            var soundObject = document.getElementById('soundContainer');

            function playRightClick() {
                    soundObject.play();
            }
        </script>
    </head>
    <body>
    </body>
</html>
Avatar billede twm Nybegynder
16. maj 2004 - 16:37 #8
Det er lige en skrappet version der kun virker i IE!
Avatar billede twm Nybegynder
16. maj 2004 - 16:43 #9
Lidt mere skrappet! :D
<html>
  <head>
    <embed ID="sc" src="file://c:/windows/media/tada.wav" autostart="false" hidden="true">
    <script>
      var soundObject = document.getElementById('sc');
      document.oncontextmenu=playRightClick;
      function playRightClick() { soundObject.stop();soundObject.play(); }
    </script>
  </head>
  <body>
  </body>
</html>
Avatar billede xbobby Nybegynder
16. maj 2004 - 17:40 #10
Det er til UG kryds og slange twn, der er 60 point på vej til dig - tak for hjælpen twm - xbobby :-)
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