前几天,在qq群里有个xd问到bgsound的一些资料,确切地说是它的特殊用法。奇怪群里的人竟然都没几个能说出新意的,包括我!或许是这个标签不常用、或者是用处不大,所以,大家也就没有特意去研究过背景音乐吧。(以前自学这个东西时,本人也是仅仅出于好奇,玩玩而已^_^)
废话少说,来点真格的……
(以下是原文,不仅仅是bgsound哦,还有其他东东,慢慢see)
src="your.mid"
设定 midi 或者是 mp3 档案及路径,可以是相对或绝对。
autostart=true
是否在音乐档传完之後,就自动播放音乐。true 是,false 否 (内定值)。
loop=infinite
是否自动反覆播放。loop=2 表示重复两次,infinite 表示重复多次。
wmp 与 real 既有各自专用的歌词表现形式,又有两者都通用的歌词表现形式。wmp 专用的歌词表现形式是通过 *.smi 文件实现的,real 专用的歌词表现形式是通过 *.rt 文件实现的,两者通用的歌词表现形式为 *.lrc 文件。
smi 歌词文件
请点播放键观看效果(有个缓冲过程,大家要等待片刻)。smi 文件有专门的制作软件,非常方便,方法后面详谈。可实现歌词的单行、多行及卡拉ok等特殊效果。smi 歌词实际是利用 wmp 的 closed caption 属性实现的。
代码如下:
| SMI 演示 |
<script> <br>function Play() <br>{ <br>aboutplayer.closedCaption.CaptioningID = "CapText"; <br>aboutplayer.closedCaption.SAMIFileName = "http://lrc.aboutplayer.com/goodbye.smi";; <br>aboutplayer.URL = "http://www.shijiren.net/wma/g00146001/g0014600101.wma";; <br>aboutplayer.controls.play(); <br>} <br>function Stop() <br>{ <br>aboutplayer.controls.stop(); <br>} <br></script>
问题的关键就是下面三句:
aboutplayer.closedCaption.CaptioningID = "CapText";
// 网页上显示歌词的位置 ID
aboutplayer.closedCaption.SAMIFileName = http://lrc.aboutplayer.com/goodbye.smi;
// SMI 歌词文件地址
aboutplayer.URL = http://www.shijiren.net/wma/g00146001/g0014600101.wma;
// 媒体文件地址
放在 aboutplayer.controls.play(); 的前面。其中 SMI 文件地址最好用绝对地址(随媒体文件地址是绝对、相对而变化)。若媒体文件与 SMI 文件通名同路径,则 SMI 文件地址可省略不写。
上面只是单曲歌词播放的实例,关于 SMI 歌词连续播放的经典版本请参阅谱乐制作的 BBSVisual For SMI。
RT 歌词文件
请点播放键观看效果。RT 歌词文件既可逐行同步,也可逐字同步,下面就是逐字同步的演示。
代码如下:
这种方式的歌词同步谱乐称之为“精确制导”,即卡拉OK效果,逐字出现的时间与媒体播放精确同步。“网上卡拉OK”为谱乐首先创意,并实现了多种表现形式。
LRC 歌词文件
LRC 歌词中也能实现“精确制导”,具体效果参阅 http://aboutplayer.com/bbsvisual++,可“逐字变色”,感觉非常爽。但这种“精确制导”的歌词文件制作非常费时费力,不便于推广应用。为此,谱乐研究出了一种网页能自动“逐字变色”的播放器 BBSVisual。演示地址:http://qq.aboutplayer.com。
LRC 歌词作为一种通用的歌词文件,使用非常广泛,网上很多地方提供下载(谱乐歌词搜索与下载 http://lrc.aboutplayer.com)。下面是歌词文件“潘越云 - 野百合也有春天.lrc”的内容:
[ti:野百合也有春天] // 歌曲名
[ar:潘越云] // 演唱者
[al:唯一] // 专辑名
[la:zh] // 语言类别
[by:谱乐] // 歌词编制人
[offset:500] // 时间参数(正数表示整体提前,负数表示整体滞后。通过在网页中编制语句实现)
[00:00.00]潘越云-野百合也有春天
[00:05.50www.aboutplayer.com
[01:21.05][00:07.14]仿佛如同一场梦
[01:24.52][00:10.42]我们如此短暂的相逢
[01:28.55][00:14.09]你像一阵春风轻轻柔柔吹入我心中
[01:35.69][00:21.58]而今何处是你往日的笑容
[01:43.01][00:29.10]记忆中那样熟悉的笑容
[02:18.93][01:49.26][00:35.40]你可知道我爱你想你念你怨你深情永不变
[02:27.36][01:57.61][00:43.62]难道你不曾回头想想昨日的誓言
[02:34.57][02:04.90][00:51.04]就算你留恋开放在水中娇艳的水仙
[02:42.00][02:12.16][00:58.54]别忘了寂寞的山谷的角落里野百合也有春天
[01:08.54]谱乐专栏
[02:48.65]啦...........啦...............啦..........
前面是歌词出场时间,可组成时间数组 Time(1)、Time(2) ……。后头为歌词内容,可组成歌词数组 Txt(1)、Txt(2) ……。LRC歌词文件的工作机理就是“通过即时判断,当歌曲播放时间到达 Time(1) 时,歌词 Txt(1) 显示”。Txt(1)“逐字变色”的时间算法为 (Time(2) - Time(1)) / Txt(1).Length。“歌词同步”谱乐的说教就到此为止,详细的工作过程请到谱乐论坛下载源码研究。
最后介绍两款歌词制作辅助软件。LRC2SMI:方便地将 LRC 文件转换为 SMI 文件。“精确制导”:制作准确的“逐字变色”的 LRC 歌词文件。谱乐论坛独家提供下载。
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
常用网页播放器:
src:音乐文件的路径及文件名;
autostart:true为音乐文件上传完后自动开始播放,默认为false(否)
loop:true为无限次重播,false为不重播,某一具体值(整数)为重播多少次
volume:取值范围为"0-100",设置音量,默认为系统本身的音量
starttime:"分:秒",设置歌曲开始播放的时间,如,starttime="00:10",从第10开始播放
endtime: "分:秒",设置歌曲结束播放的时间
width:控制面板的宽
height:控制面板的高
controls:控制面板的外观
controls="console/smallconsole/playbutton/pausebutton/stopbutton/volumelever"
·console:正常大小的面板
·smallconsole:较小的面板
·playbutton:显示播放按钮
·pausebutton:显示暂停按钮
·stopbutton:显示停止按钮
·volumelever:显示音量调节按钮
hidden:为true时可以隐藏面板
<script language="javascript" defer> <br>var volv=phx.settings.volume; <br>setInterval("if(phx.playState==3){time.innerText=phx.controls.currentPositionString+'|'+phx.currentMedia.durationString}",1000); <br>setInterval("if(phx.playState==3){itcn.style.width=parseInt(245*(phx.controls.currentPosition/phx.currentMedia.duration))}",1000); <br>function volup(){ <br>if (volv<100){ <br>volv+=5; <br>phx.settings.volume=volv; <br>time.innerText=volv;} <br>else{time.innerText='最大';} <br>} <br>function voldown(){ <br>if (volv>0){ <br>volv-=5; <br>phx.settings.volume=volv; <br>time.innerText=volv;} <br>else{time.innerText='最小';} <br>} <br></script>
<script language="javascript" defer> <br>var volv=phx.settings.volume; <br>setInterval("if(phx.playState==3){time.innerText=phx.controls.currentPositionString+'|'+phx.currentMedia.durationString}",1000); <br>setInterval("if(phx.playState==3){itcn.style.width=parseInt(245*(phx.controls.currentPosition/phx.currentMedia.duration))}",1000); <br>function volup(){ <br>if (volv<100){ <br>volv+=5; <br>phx.settings.volume=volv; <br>time.innerText=volv;} <br>else{time.innerText='最大';} <br>} <br>function voldown(){ <br>if (volv>0){ <br>volv-=5; <br>phx.settings.volume=volv; <br>time.innerText=volv;} <br>else{time.innerText='最小';} <br>} <br></script>
各种播放器代码
1.avi格式
2.mpg格式
3.smi格式
4.rm格式
5.wmv格式
6.wma格式
[code]
[html]










