最近想做一个通过点击或者mouseover触发 发出声音的效果。
网上很多代码,由于受到播放器组件、浏览器等条件影响,很难找到一个兼容的方法,
ie下很容易实现:
<embed id="realplayer" src="test.mp3" width=328 height=68 type="audio/x-pn-realaudio-plugin" controls="StatusBar,ControlPanel" autostart="flase" loop="true">
<a href="#" onclick="javascript:document.getElementById('realplayer').DoPlay();">Play</a>
<a href="#" onclick="javascript:document.getElementById('realplayer').DoPause();">Pause</a>
以上代码本人已在ie下通过测试,但firefox等浏览器下还没有找到相关方法,有高人指点下吗?为避免不必要的无用功,如果帖代码出来的话,最好是经过自己测试完全可用的,谢谢
真的找了很久,分不是很多,尽量给~~再次多谢各位了,在线等~~
网上很多代码,由于受到播放器组件、浏览器等条件影响,很难找到一个兼容的方法,
ie下很容易实现:
<embed id="realplayer" src="test.mp3" width=328 height=68 type="audio/x-pn-realaudio-plugin" controls="StatusBar,ControlPanel" autostart="flase" loop="true">
<a href="#" onclick="javascript:document.getElementById('realplayer').DoPlay();">Play</a>
<a href="#" onclick="javascript:document.getElementById('realplayer').DoPause();">Pause</a>
以上代码本人已在ie下通过测试,但firefox等浏览器下还没有找到相关方法,有高人指点下吗?为避免不必要的无用功,如果帖代码出来的话,最好是经过自己测试完全可用的,谢谢
真的找了很久,分不是很多,尽量给~~再次多谢各位了,在线等~~
很明显,DoPlay()等方法是ie下的
我是想问firefox浏览器下可以使用什么方法呢
用flash,那首先要把一些声音文件转换成flash列?
能说下具体方法么,楼上这位大哥
够你用的。
tracks: {},
_enabled: true,
template:
new Template('<embed style="height:0" id="sound_#{track}_#{id}" src="#{url}" loop="false" autostart="true" hidden="true"/>'),
enable: function(){
Sound._enabled = true;
},
disable: function(){
Sound._enabled = false;
},
play: function(url){
if(!Sound._enabled) return;
var options = Object.extend({
track: 'global', url: url, replace: false
}, arguments[1] || {});
if(options.replace && this.tracks[options.track]) {
$R(0, this.tracks[options.track].id).each(function(id){
var sound = $('sound_'+options.track+'_'+id);
sound.Stop && sound.Stop();
sound.remove();
})
this.tracks[options.track] = null;
}
if(!this.tracks[options.track])
this.tracks[options.track] = { id: 0 }
else
this.tracks[options.track].id++;
options.id = this.tracks[options.track].id;
$$('body')[0].insert(
Prototype.Browser.IE ? new Element('bgsound',{
id: 'sound_'+options.track+'_'+options.id,
src: options.url, loop: 1, autostart: true
}) : Sound.template.evaluate(options));
}
};if(Prototype.Browser.Gecko && navigator.userAgent.indexOf("Win") > 0){
if(navigator.plugins && $A(navigator.plugins).detect(function(p){ return p.name.indexOf('QuickTime') != -1 }))
Sound.template = new Template('<object id="sound_#{track}_#{id}" width="0" height="0" type="audio/mpeg" data="#{url}"/>')
else
Sound.play = function(){}
}
例子如下:<!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" xml:lang="en" lang="en">
<head>
<title>script.aculo.us Sound functional test file</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<script src="../../lib/prototype.js" type="text/javascript"></script>
<script src="../../src/scriptaculous.js" type="text/javascript"></script>
</head>
<body>
<h1>script.aculo.us Sound test file</h1><a href="#" onclick="Sound.play('sword.mp3'); return false">play sound (parallel)</a><a href="#" onclick="Sound.play('sword.mp3',{replace:true}); return false">play sound (overwrite)</a><a href="#" onclick="Sound.disable(); return false">Mute</a>
<a href="#" onclick="Sound.enable(); return false">Enable sounds</a></body>
</html>
你试过,是兼容的么? 方便的话能把代码贴全么? 或者把例子的页面等文件发到我邮箱也行,邮箱:[email protected]
谢了先
<HTML>
<BODY>
<SCRIPT type="text/javascript">
if(-1 != navigator.userAgent.indexOf("MSIE"))
{
document.write('<OBJECT id="Player"');
document.write(' classid="clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6"');
document.write(' width=0 height=0 ><param name="URL" value="test.mp3" /><param name="AutoStart" value="false" /></OBJECT>');
}
else
{
document.write('<OBJECT id="Player"');
document.write(' type="application/x-ms-wmp"');
document.write(' autostart="false" src= "test.mp3" width=0 height=0></OBJECT>');
}
</SCRIPT>
<input type=button value="Play" onclick="Player.controls.play();">
<input type=button value="Stop" onclick="Player.controls.stop();">
</BODY>
</HTML>
这个,解压缩出来,里面有个test文件夹,你打开里面的html
方便请教啊
但是现在又遇到问题
1、要通过服务器上访问页面,才能顺利播放
2、貌似不支持wav文件格式的声音