北京课件制作 上海虚拟现实 广州动画制作 深圳建筑动画 天津三维动画 杭州光盘印刷 厦门企业宣传片 沈阳Flash动画 东莞企业宣传片 济南动画制作 北京光盘印刷 上海影视制作 杭州动画制作
 19 12
发新话题
打印

仙乐飘飘——打造自己的音乐播放器

仙乐飘飘——打造自己的音乐播放器

[这个贴子最后由auth在 2004/11/16 06:52pm 第 7 次编辑]

                          仙乐飘飘——打造自己的音乐播放器
                     作者:auth       E-mail:hw262002@yahoo.com.cn
    提到音乐播放器,大家很自然地会想起Winnamp,不过我一直想做一个属于自己的音乐播放器,但是我不会VB或C语言,怎么办呢?幸好,对多媒体制作大师Authorware我还是比较熟悉的,于是我就开始捉摸用Authorware来DIY一个音乐播放器,经过一番尝试,终于实现了一些基本功能,好东东不敢独享,在此与诸位一起分享。
实现功能:
    1、自动取得指定目录下的音乐文件;
    2、按顺序循环播放或乱序播放;
    3、支持mp3和swa文件格式的音乐文件,实时显示正在播放的音乐文件名。
    由于这儿用到了列表函数,因此为了看懂源程序,大家最好先查一查列表函数的用法,在这儿就不再详细叙述了,很多的Authorware论坛上都有介绍。
实现过程:
    在动手做之前,我们先来看看这个程序完成后的总流程图(见图1),这样可以使我们有一个初步的总体印象。
     
    1、打开Authorware新建一个“音乐播放器”文件,然后按总流程图所示将图标依次拖放到流程线上,分别给图标命名(提示:这个习惯很重要,它可以让我们能更快的读懂源程序,便于以后修改。),其中条件交互设置条件为:MediaPlaying@"bMP3"=FALSE,表示当bMP3声音图标不在播放、暂停或播放完毕后响应该条件交互,执行该交互下的分支。交互属性设为:永久响应,分支为“返回”。
    2、打开“信息”显示图标,在适当位置输入:{rFilename[j_a]},注意,大括号必须在英文状态下输入,并将显示图标属性设置为:更新变量显示。
    3、打开“获取文件名”计算图标,在其中输入以下内容:
    --取得文件列表,假设所有的音乐文件放在music文件夹中
    FileString:=Catalog(FileLocation^"music","F")
--取得文件个数
FileNumber:=LineCount(FileString,Return)
--取得文件后缀名并筛选出mp3、swa文件名存到一维列表rFileName中。
repeat with i:=1 to FileNumber
FileNames:=GetLine(FileString,i)
FileFix:=SubStr(FileNames,RFind(".",FileNames)+1,CharCount(FileNames))
if FileFix="mp3" then
j_a:=j_a+1
rFileName[j_a]:=FileNames
else if FileFix="swa"then
j_a:=j_a+1
rFileName[j_a]:=FileNames
end if
end repeat
j_a:=1
path:=FileLocation^"music\"^tFileName[j_a] --该变量用于存放要播放的音乐文件的路径,在声音图标中用到。
注:rFileName和后面的tFileName的初始变量值为[],否则不能播放音乐,其他默认即可。
4、对声音图标作如下设置:文件路径设为“=path”(注意:在变量path前一定要加一个等号,否则变量不起作用。这一技巧还可以在其它的图标中灵活运用。),执行方式为“同时”,播放次数为1次,设置好后确定退出。
5、打开条件交互分支下的计算图标,在其中输入以下内容:
j_a:=j_a+1
if j_a>ListCount(rFileName) then
j_a:=1
end if
path:=FileLocation^"music\"^rFileName[j_a]--取得第j_a个文件名及其路径
MediaPlay(IconID@"bMP3")
如果要实现乱序播放则在该计算图标中输入:
DeleteAtIndex(tFileName, j_a)
if ListCount(tFileName)=0 then
tFileName:=CopyList(rFileName)
index:= FindValue(tFileName, t_name)
DeleteAtIndex(tFileName, index)
end if
j_a:=ListCount(tFileName)
j_a:=Random(1,j_a,1)
path:=FileLocation^"music\"^tFileName[j_a]
MediaPlay(IconID@"bMP3")
t_name:=tFileName[j_a]
并将“获取文件名”计算图标中的最后两行改为:
tFileName:=CopyList(rFileName)
j_a:=Random(1,j_a,1)
path:=FileLocation^"music\"^tFileName[j_a]
显示图标中的内容也应改为:{rFilename[j_a]}。
    好了,至此一个音乐播放器的雏形就产生了,保存后运行一下看看(要保证指定目录下有音乐文件),还不赖吧?呵呵……那能不能对院程序进行改进,实现如Winamp的部分功能呢?经过摸索,完全可以。大家看图2,这是我制作的一个完整的音乐播放器
        
(大家可以去我的网页下载下来体验一下,网址是:http://www.awfans.com),它可以实现动态显示歌名、播放、暂停、停止、选曲以及播放时间和进度等功能,而这些功能的实现完全是用Authorware提供的内部函数完成的。由此可见,Authorware不仅只适用于制作课件或多媒体演示,只要有足够的创意,你就可以做出令人意想不到作品
    听着美妙的音乐由自己制作的音乐播放器中播出,享受着自己的DIY成果,正是仙乐飘飘呀!
 

TOP

仙乐飘飘——打造自己的音乐播放器

可以在进度条上拖动滑块时定位声音吗?

TOP

仙乐飘飘——打造自己的音乐播放器

可以的,我这里有一个实例,不过文件太大,传不上来!

TOP

仙乐飘飘——打造自己的音乐播放器

给我发一个源程序

TOP

仙乐飘飘——打造自己的音乐播放器

我挺想学的,可是看不以图片,不知道源程序是怎样的,能给我发一份吗?
nvsiling@sina.com

TOP

仙乐飘飘——打造自己的音乐播放器

呵呵,auth 兄弟,满足各位的要求吧。呵呵,谢谢

TOP

仙乐飘飘——打造自己的音乐播放器

能给我一份吗,谢谢,xpinchina@sina.com

TOP

仙乐飘飘——打造自己的音乐播放器

不知道auth兄和寒剑兄满足大家需求没有?呵呵

TOP

仙乐飘飘——打造自己的音乐播放器

我也在学,可以给我发一份吗.邮箱地址  lshx56789@163.com  或则加我的QQ  123721940[br][br][color=#990000][b]-=-=-=-=- 以下内容由 [i]ddr111[/i] 在 [i]2006年05月23日 04:06pm[/i] 时添加 -=-=-=-=-[/b][/color]
还有图片的流程我看不了啊,麻烦发给我好吗?现在在做毕业设计,急啊.谢谢

TOP

仙乐飘飘——打造自己的音乐播放器

3q
学习学习!!

TOP

 19 12
发新话题