| 首页 | 新闻 | 网页 | 设计 | 色彩 | 原创 | 视觉 | 素材 | 动漫 | 酷站 | 策划 | 文案 | 访谈 | 运营 | 编程 | 数据库 | 服务器 | 下载 | 图库 | 
您的位置: 幽幽天空 > 网页 > 网页制作 > Flash教程 > Flash辅助软件 > 文章正文 用户登录
一个很实用的基于
Flash & Ajax
关于导入MP3的问题
我的计划 & S
有些MP3无法导入F
修正flash v2 Com
MP3不能导入FLASH
MP3不能顺利导入F
Template Method(
AS随机调用外部MP

mp3播放器组件           

mp3播放器组件

作者:佚名 来源:闪吧 作者: ycsonglei 更新:2007-1-13 20:41:13 错误报告 我要投稿

利用Sound类制作的一个MP3播放器,可读取id3.2数据源,开放曲目列表接口.
相关函数:
<1>addSongUrl(ssongUrl:String):Void,向列表中添加mp3文件地址.
<2>deleteSongUrl(ndelPos:Number):Void,删除指定曲目序列位置的mp3文件
<3>loadSong(nsongPos:Number):Void,播放指定曲目序列位置的mp3文件
<4>listLen:Number,曲目序列长度
<5>songInfo:String,歌曲信息
<6>curTimeStr:String,歌曲当前时间信息

mxp组件


点击浏览该文件

测试的文件

点击浏览该文件

代码写在下面利用Sound类制作的一个MP3播放器,可读取id3.2数据源,开放曲目列表接口.
相关函数:
<1>addSongUrl(ssongUrl:String):Void,向列表中添加mp3文件地址.
<2>deleteSongUrl(ndelPos:Number):Void,删除指定曲目序列位置的mp3文件
<3>loadSong(nsongPos:Number):Void,播放指定曲目序列位置的mp3文件
<4>listLen:Number,曲目序列长度
<5>songInfo:String,歌曲信息
<6>curTimeStr:String,歌曲当前时间信息

mxp组件


点击浏览该文件

测试的文件

点击浏览该文件

代码写在下面

var checkPause,timeSum,curTime,listNo,listLen,stepCon:Number;
var volNum,spanNum,volType,spanType:Number;
var nSound:Sound=new Sound();
var listA:Array;
var songUrl,songInfo,curTimeStr:String;
function reSetDeal():Void
{
listA=new Array();
songUrl="";
songInfo="";
curTimeStr="";
stepCon=1;
volNum=80;
spanNum=50;
checkPause=timeSum=listLen=listNo=curTime=0;
spanType=volType=1;
nSound.stop();
this.perBar.stock._x=0;
this.perBar.stock._y=-5;
spanGet();
volGet();
this.sbar.stock._y=this.vbar.stock._y=-4;
}
this.perBar.stock.onPress=function():Void
{
songPerDeal();
}
this.perBar.stock.onRelease=function():Void
{
songPerDealOver();
}
this.perBar.stock.onReleaseOutside=function():Void
{
songPerDealOver();
}
/////////歌曲进度条调节函数/////////////////
function songPerDeal():Void
{
delete this.onEnterFrame;
if(timeSum>0)
{
this.perBar.stock.startDrag(true,0,-5,534,-5);
this.perBar.stock.onEnterFrame=function():Void
{
songPerPosGet();
};
}
}
function songPerPosGet():Void
{
curTime=timeSum*this.perBar.stock._x/532;
}
function songPerDealOver():Void
{
this.perBar.stock.stopDrag();
delete this.perBar.stock.onEnterFrame;
//调用歌曲播放函数
if(timeSum>0)
{
nSound.start(Math.round(curTime/1000-0.5));
this.onEnterFrame=function()
{
showProBar();
}
}
}
//////////////声道音量调节按钮/////////////
//减
this.sdelB.onPress=function():Void
{
dealSpan(-1);
}
this.sdelB.onRelease=function():Void
{
dealSpanOver();
}
this.sdelB.onReleaseOutside=function():Void
{
dealSpanOver();
}
//增
this.saddB.onPress=function ():Void
{
dealSpan(1);
}
this.saddB.onRelease=function():Void
{
dealSpanOver();
}
this.saddB.onReleaseOutside=function():Void
{
dealSpanOver();
}
function dealSpan(ntype:Number):Void
{
spanType=ntype;
delete ntype;
this.sbar.onEnterFrame=function():Void
{
spanGet();
}
}
function spanGet():Void
{
spanNum=spanNum+spanType*stepCon;
if(spanNum<0) spanNum=0;
if(spanNum>100) spanNum=100;
setMpVolume(2*spanNum-100,1);
this.sbar.stock._x=spanNum/100*146;
}
function dealSpanOver():Void
{
delete this.sbar.onEnterFrame;
}
//////声道
//增
this.vaddB.onPress=function():Void
{
dealVolum(1);
}
this.vaddB.onRelease=function():Void
{
dealVolumOver();
}
this.vaddB.onReleaseOutside=function():Void
{
dealVolumOver();
}
//减
this.vdelB.onPress=function():Void
{
dealVolum(-1);
}
this.vdelB.onRelease=function():Void
{
dealVolumOver();
}
this.vdelB.onReleaseOutside=function():Void
{
dealVolumOver();
}
function dealVolum(ntype:Number):Void
{
volType=ntype;
delete ntype;
this.vbar.onEnterFrame=function():Void
{
volGet();
}
}
function volGet():Void
{
volNum=volNum+volType*stepCon;
if(volNum<0) volNum=0;
if(volNum>100) volNum=100;
setMpVolume(volNum,0);
this.vbar.stock._x=volNum/100*146;
}
function dealVolumOver():Void
{
delete this.vbar.onEnterFrame;
}
//////////////////////////////////////////
//音量平衡度调整函数///////
function setMpVolume(nvtNum:Number,ntype:Number):Void
{
if(ntype==0)
{
nSound.setVolume(nvtNum);
}
else if(ntype==1)
{
nSound.setPan(nvtNum);
}
delete nvtNum;
delete ntype;
}
///////////////歌曲控制按钮动作///////////////////////
this.playB.onPress=function()
{
if(this._parent.songUrl!="")
{
songPlay();
}
else
{
if(this._parent.listLen>0) loadSong(0);
}
};
this.pauseB.onPress=function()
{
songPause();
};
this.preB.onPress=function()
{
changeSongPos(-1);
};
this.nextB.onPress=function()
{
changeSongPos(1);
};
function changeSongPos(ntype:Number):Void
{
if(listLen>0)
{
delete this.onEnterFrame;
nSound.stop();
if(ntype==1)
{
//下一首
listNo=listNo<listLen-1?listNo+1:0;
}
else
{
//上一首
listNo=listNo>0?listNo-1:listLen-1;
}
loadSong(listNo);
}
}
function songPause():Void
{
if(songUrl!="")
{
if(checkPause==0)
{
delete this.onEnterFrame;
checkPause=1;
curTime=nSound.position;
nSound.stop();
//trace("pause"+curTime);
}
else
{
//trace("play"+curTime)
checkPause=0;
nSound.start(Math.round(curTime/1000-0.5));
this.onEnterFrame=function()
{
showProBar();
}
}
}
}
//////读取歌曲信息/////////////
function scanSong():Void
{
var infoStr,artStr,disStr,songStr:String;
artStr=disStr=songStr="";
infoStr=" [总时间 "+timeToString(timeSum,1)+"";
songStr=toUTF(nSound.id3.TIT2);
artStr=toUTF(nSound.id3.TPE1);
disStr=toUTF(nSound.id3.TALB);
if(songStr=="") songStr=songUrl;
if(artStr=="") artStr="佚名艺术家";
if(disStr=="") disStr="佚名唱片";
infoStr=infoStr+"--"+songStr+"--"+artStr+"--"+disStr+"]";
songInfo=infoStr;
delete infoStr;
delete artStr;
delete disStr;
delete songStr;
this.onEnterFrame=function()
{
showProBar();
}
}
function showProBar():Void
{
var perNum:Number;
curTime=nSound.position;
curTimeStr=timeToString(curTime,0);
//当前播放百分比
perNum=Math.round(curTime/timeSum*100-0.5);
this.perBar.stock._x=534*perNum/100;
delete perNum;
}
/////////计时函数///////////////////////
function timeToString(ntime:Number,ntype:Number):String
{
var m1,m2,m3,m4,m5,m6,m7,ntime1:Number;
var returnStr:String;
ntime1=Math.round(ntime/1000-0.5);
m1=Math.round(ntime1/3600-0.5);
m2=Math.round((ntime1-m1*60)/60-0.5);
m3=ntime1-(m1*60+m2)*60;
m4=m3-Math.round(m3/10-0.5)*10;
m3=Math.round(m3/10-0.5);
m5=ntime-ntime1*1000;
m6=Math.round(m5/100-0.5);
m7=Math.round((m5-m6*100)/10-0.5);
m5=m5-m6*100-m7*10;
if(ntype==0)
{
returnStr=new String(m1);
returnStr=returnStr+m2+":"+m3+m4;
returnStr=returnStr+m6+m7+m5;
}
else
{
if(m1==0)
{
returnStr=new String(m2);
returnStr=returnStr+":"+m3+m4;
}
else
{
returnStr=new String(m1);
returnStr=returnStr+m2+":"+m3+m4;
}
}
//trace(m1+" "+m2);
delete m1;
delete m2;
delete m3;
delete m4;
delete m5;
delete m6;
delete m7;
delete ntype;
delete ntime;
delete ntime1;
return returnStr;
delete returnStr;
}
/////播放函数////////
function songPlay():Void
{
checkPause=0;
this.onEnterFrame=function()
{
if(checkPause==1)
{
checkPause=0;
timeSum=nSound.duration;
if(timeSum>0)
{
nSound.start();
scanSong();
}
else
{
errorShow();
delete this.onEnterFrame;
}
}
checkPause=1;
}
}
//////////歌曲播放完毕函数////////
nSound.onSoundComplete=function()
{
songOver();
}
function songOver():Void
{
delete this.onEnterFrame;
curTime=timeSum;
this.perBar.stock._x=540;
//判断歌曲是否到末尾
if(listNo<listLen-1)
{
loadSong(listNo+1);
}
else
{
loadSong(0);
}
}
///////歌曲播放出错函数//////
function errorShow():Void
{
trace("error");
}
/////////载入歌曲函数//////////////
function loadSong(curSongPos:Number):Void
{
songUrl=listA[curSongPos];
listNo=curSongPos;
nSound.loadSound(songUrl,true);
songPlay();
delete curSongPos;
}
//添加歌曲地址到曲目列表函数///////
function addSongUrl(ssongUrl:String):Void
{
listA[listLen]=ssongUrl;
listLen=listLen+1;
delete ssongUrl;
}
//删除曲目列表中的歌曲地址函数//////
function deleteSongUrl(ndelPos:Number):Void
{
var i:Number;
if(ndelPos<listLen-1 && ndelPos>=0)
{
for(i=ndelPos;i<listLen-1;i++)
{
listA[i]=listA[i+1];
}
listLen=listLen-1;
//判断当前播放的歌曲位置变化
if(listNo>=ndelPos) listNo=listNo-1;
}
delete i;
delete ndelPos;
}
reSetDeal();
stop();

源代码
点击浏览该文件

文章录入:skyuu    责任编辑:skyuu 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    发表评论:
    姓名:  评 分: 1分 2分 3分 4分 5分
     
  • 严禁发表危害国家安全、政治、黄色淫秽等内容的评论。
  • 用户需对自己在使用幽幽天空服务过程中的行为承担法律责任。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表机友个人观点,与本网站立场无关。