Afspilning af lyd
Hej EksperterJeg 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>
