一个很实用的基于XML的网络mp3播放器
作者 佚名技术
来源 服务器技术
浏览
发布时间 2012-07-10
在自己的主页上放个mp3播放器,把自己喜欢的音乐承上与朋友分享是件快乐的事,遗憾的是音乐文件太大,占自己的空间心疼:(链接别人的音乐又经常出现错误(音乐文件删了也不跟咱们打招呼),朋友久等却听不到音乐:) 这个简单的播放器最得意的地方就是能识别无效的链接,遇到无效的链接就自动跳到下一首,一直到有效的地址(除非你的音乐地址列表没有一个能下的),你所做的事就是在网上搜索你喜欢的音乐,把网址加到播放列表里就可以。 先看XML文件:songlist.xml 记录mp3的信息(主要是歌名、歌曲地址,你也可以自己添加其它信息) //这里只列两首 注意:信息是星号部分 把下面的AS拷贝到你的第一帧就可以(简单写一下注释) soundstop = 0; //默认音乐为播放,只为关闭音乐时使用 //-------------------- createEmptyMovieClip("songMc", 50); //建立一个空的MC存放mp3的信息(用数组也可以,但觉得没这方便) createTextField("song_txt", 10, 30, 3, 300, 50); //this.createTextField(instanceName, depth, x, y, width, height) //建立一个动态文本框来显示歌曲名等 setSongtxt = function (string) { song_txt._width = Number(string.length*13); song_txt.text = string; // 以下几行是自定义文字的颜色等属性 // myformat = new TextFormat(); // myformat.font = sans; // myformat.color = 0xFFFF99; // myformat.align = right; // song_txt.setTextFormat(myformat); }; //定义的控制动态文本框显示的内容及属性 //以下是处理xml里保存的mp3信息最好不要动,------------------------ xmlObj = new XML(); system.useCodepage = true; xmlObj.ignoreWhite = true; xmlObj.onLoad = function(success) { if (success) { setSongtxt("歌曲列表下载完毕"); var i = 0; var one_xml = xmlObj.firstChild.firstChild; while (one_xml != null) { duplicateMovieClip("songMc", "songMc"+i, 100+i); var tempMc = eval("songMc"+i); var two_xml = one_xml.firstChild; while (two_xml.firstChild != null) { var a = two_xml.nodeName; tempMc[a] = two_xml.firstChild.nodeValue; //trace(a+" : "+tempMc[a]); // 看看输出的是什么就知道是怎么回事了 two_xml = two_xml.nextSibling; } i++; one_xml = one_xml.nextSibling; } xmlLoad = 1; totalSongNum = i; //记下歌曲总数 curNum = random(totalSongNum); // 随机选中一首 //如果不喜欢老从第一首歌开始播放 curSong(curNum); //调用播放的函数开始播放 } else { setSongtxt("歌曲列表下载错误"); } }; //-------------- if (xmlLoad == undefined) { setSongtxt("下载歌曲列表"); xmlObj.load("songlist.xml"); } //--------------- my_sound = new Sound(); my_sound.onLoad = function(success) { if (success) { //如果下载成功。。。 setSongtxt(curSongName); my_sound.setVolume(80); stop(); } else { //如果下载失败。。。 setSongtxt("歌曲下载错误"); if (curNum<(totalSongNum-1)) { curNum++; } else { curNum = 0; } con = true; } }; // select-------------- curSong = function (curNum) { var tempSong = eval("this.songMc"+curNum); curSongUrl = tempSong.songUrl; curSongName = tempSong.songName; // songUrl、songName分别与songlist.xml里对应 my_sound.loadSound(curSongUrl, true); // 获取地址后加载音乐 }; // 一首歌结束时调用----------------- my_sound.onSoundComplete = function() { if (curNum<(totalSongNum-1)) { curNum++; } else { curNum = 0; } con = true; play(); }; // ------------- if (con) { con = false; curSong(curNum); } //以下是按钮控制----------- ctrl.stop_mc.onPress = function() { if (sound |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: 关于动画与声音的同步下一篇: 计 算 器
关于一个很实用的基于XML的网络mp3播放器的所有评论