我写的是创建一个系统的互动模拟一个DHTML应用程序。 用于模拟的数据从另一个工具生成,并且已经有一个非常大的量遗留数据。
在模拟的一些步骤需要我们玩音频的“画外音”剪辑。 我一直无法找到一个简单的方法来在多个浏览器做到这一点。
Soundmanager2出来的结果很接近我所需要的,但它只能播放MP3文件,以及遗留数据可能包含一些.wav文件也是如此。
没有人有任何其他库,可以帮助?
我写的是创建一个系统的互动模拟一个DHTML应用程序。 用于模拟的数据从另一个工具生成,并且已经有一个非常大的量遗留数据。
在模拟的一些步骤需要我们玩音频的“画外音”剪辑。 我一直无法找到一个简单的方法来在多个浏览器做到这一点。
Soundmanager2出来的结果很接近我所需要的,但它只能播放MP3文件,以及遗留数据可能包含一些.wav文件也是如此。
没有人有任何其他库,可以帮助?
你将不得不包括一个插件,如Real音频或QuickTime处理的.wav文件,但这应该工作...
//======================================================================
var soundEmbed = null;
//======================================================================
function soundPlay(which)
{
if (!soundEmbed)
{
soundEmbed = document.createElement("embed");
soundEmbed.setAttribute("src", "/snd/"+which+".wav");
soundEmbed.setAttribute("hidden", true);
soundEmbed.setAttribute("autostart", true);
}
else
{
document.body.removeChild(soundEmbed);
soundEmbed.removed = true;
soundEmbed = null;
soundEmbed = document.createElement("embed");
soundEmbed.setAttribute("src", "/snd/"+which+".wav");
soundEmbed.setAttribute("hidden", true);
soundEmbed.setAttribute("autostart", true);
}
soundEmbed.removed = false;
document.body.appendChild(soundEmbed);
}
//======================================================================
如果您使用原型,Scriptaculous库拥有完善的API 。 jQuery的似乎有一个插件 ,太。
dacracots代码是干净的基本的DOM,但也许书面没有第二个想法? 当然,你检查早期嵌入是否存在等第一,并保存副本嵌入创造线。
var soundEmbed = null;
//=====================================================================
function soundPlay(which)
{
if (soundEmbed)
document.body.removeChild(soundEmbed);
soundEmbed = document.createElement("embed");
soundEmbed.setAttribute("src", "/snd/"+which+".wav");
soundEmbed.setAttribute("hidden", true);
soundEmbed.setAttribute("autostart", true);
document.body.appendChild(soundEmbed);
}
整个想法来到这里,而在扫描的有点类似情况的解决方案。 不幸的是我的浏览器的Mozilla / 5.0(X11; U; Linux的i686的; EN-US; RV:1.9.0.15)的Gecko / 2009102814的Ubuntu / 8.04(代)的Firefox / 3.0.15尝试这个时候模具。
安装最新的更新之后,火狐仍然崩溃,歌剧一直活着。
我认为,最简单,最方便的方法是打使用小闪存剪辑的声音。 我明白这不是一个JavaScript解决方案,但它是实现你的目标的最简单方法
从以前的一些额外的链接类似的问题 :
我喜欢dacracot的答案...这里是jQuery中类似的解决方案:
function Play(sound) {
$("#sound_").remove()
$('body').append('<embed id="sound_" autostart="true" hidden="true" src="/static/sound/' + sound + '.wav" />');
}
您可以使用HTML5 <audio>
标签。
如果您正在使用Mootools的,有MooSound插件 。
<audio controls>
<source src="horse.ogg" type="audio/ogg">
<source src="horse.mp3" type="audio/mpeg">
Your browser does not support the audio element.
</audio>
见http://www.w3schools.com/html/html5_audio.asp了解更多详情。
还有一个更简单的解决这个,而不是诉诸插件。 IE浏览器有它自己的BGSOUND财产,还有另一种方式可以让所有其他浏览器。 点击这里,查看我的教程= http://www.andy-howard.com/how-to-play-sounds-cross-browser-including-ie/index.html