
为了简化处理.我们在范例中仅用到099Vorbis音频文件。若要兼容多种格式,'续你需要先通过canPlayType()来测试其是否被支持.然后才处理加载。
许多情况下都会调用[a-z]o[a-z]dTrack()。首先,是在通过菜单直接切换曲目时,由onchange事件句柄changeTrack(this)调用:
changeTrack=function(ctrl){
loadTrack(ctrl.options.selectedlndex);
};
在通过上一曲及下一曲按钮改变曲目也会调用[a-z]o[a-z]dTrack()。对应的单击事件会调用回调函数advanceTrack(n),以参数n作为step值,来确定方向-----^1为上一曲,1为下一曲。
advanceTrack=function(n){
varidx=tracks.options.selectedlndex+n;if(idx<0){idx=idx+tracks.options.length;if(idx>tracks.options.length-1){idx=idx-tracks.options.length;tracks.options.selectedlndex=idx;loadTrack(idx);};决定下一曲目的运算法则很简单,
宁波网站建设认为由两部分组成。首先我们将曲目索引加n,然后解决一下可能产生的两种特殊情况:若我们位于第一曲时点击上一曲,索引值则变为负数,因此我们将继续播放当前曲目;若我们位于最后一曲时点击下一曲,播放器则应该将跳回到第一曲。
我们甚至可以在最后两种功能中用到advanceTrackO的方法:曲目完结时自动循环播放及随机曲目选择。首先,我们要讨论一下如何处理两个按钮的激活与非激活状态.
Onclick事件句柄触发回调函数toggleOnOff(node),根据参数node指向相关按钮、并切换其状态:
toggleOnOff=function(node){
varels=node.getAttribute("class");
node.setAttribute("class",
(els=='off')'on':'off1
^
pbStatus[node.id]=node.getAttribute("class");>;如函数第一行所示,按钮的class属性——由CSS定义的样式——决定其状态。你可以在jsaudioPlayer.css中找到on与off的样式:
.off{
opacity:;
.on{
opacity:;
按钮的当前状态由变量pbStatus[node.id]决定。node.id代表循环播放(Loop)与随机播放(Shuffle)这两个按钮,由pbStatus.loop或pbStatus.shuffle将其设为on或off,在曲目播放完结时生效。这一切由回调函数contirmeOrStopO实现:
continueOrStop=function(){
if(pbStatus.shuffle=='on'){advanceTrack(Math.round(Math.random()*tracks.options.length)>);elseif(tracks.options.selectedlndex==tracks.options.length-l){if(pbStatus.loop==’onj{advanceTrack(l;;else{1pbStatus.keepPlaying=false;
else{
advanceTrack(l);
};}
本文由乐华网络编辑,转载请注明出处
宁波网站建设www.leseo.net