Avatar billede Slettet bruger
29. maj 2010 - 15:14 Der er 2 kommentarer og
1 løsning

Afspilning af lyd

Hej Eksperter

Jeg har lavet et lille JavaScript-plugin, der nemt kan afspille lyd (primært .wav-filer) på hjemmesider. Først indsatte jeg bare et hidden embed-element med autostart men fandt ud af, at det ikke virkede, når siden ikke var i fokus (det er til chat, ved nye beskeder, etc.) - så jeg har nu delt op i to funktioner:

create: oprettet elementet hidden=true og autostart=false
play: afspiller elementet

Mit problem er: Scriptet virker fint i Safari og Chrome, men ikke Firefox og IE. I Firefox får jeg fejlmeddelelsen, at testSite ikke er defineret - men det er den jo. Jeg kan ikke finde fejlen, kan I?

For at teste, har jeg lavet følgende testside (jeg kan desværre ikke give jer link, men her er koden til):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Sound Test</title>
<script type="text/livescript">
var soundPlugin = {
   
    root: 'xxxxxx',
    ext: 'wav',
    prefix: 'sound',
   
    create: function (val) {
        var name = soundPlugin.prefix + val;
        var file = soundPlugin.root + val + "." + soundPlugin.ext;
        var embed = document.createElement('embed');
        embed.setAttribute('src', file);
        embed.setAttribute('hidden', true);
        embed.setAttribute('autostart', false);
        embed.setAttribute('name', name);
        document.body.appendChild(embed);
        return false;
    },
   
    play: function (val) {
        var embed = eval('document.' + soundPlugin.prefix + val);
        embed.Play();
        return false;
    }
   
}

var testSite = {
   
    create: function(){
        var value = document.getElementById('create-text').value;
        document.getElementById('create-text').value = '';
        var option = document.createElement('option');
        option.value = value;
        option.innerHTML = value;
        document.getElementById('play-select').appendChild(option);
        soundPlugin.create(value);
    },
   
    play: function(){
        var value = document.getElementById('play-select').value;
        soundPlugin.play(value);
    }
   
}
</script>
</head>
<body>
<table>
    <tr>
        <td>Opret lyd:</td>
        <td><input id="create-text" type="text" value="" /></td>
        <td><input id="create-button" type="button" value="Opret" onclick="testSite.create()" /></td>
    </tr>
    <tr>
        <td>Afspil lyd:</td>
        <td><select id="play-select"></select></td>
        <td><input type="button" value="Afspil" onclick="testSite.play()" /></td>
    </tr>
</table>
</body>
</html>
Avatar billede Slettet bruger
29. maj 2010 - 15:17 #1
Nogengange er det en god idé at læse hele koden igennem.
<script type="text/livescript">  --> <script type="text/javascript">

Fortsat god lørdag! ;)
Avatar billede Slettet bruger
29. maj 2010 - 15:33 #2
Dén havde nu også gemt sig godt : )
Hvad er det der faktisk spiller ?
Avatar billede Slettet bruger
29. maj 2010 - 15:34 #3
afspiller
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