快速业务通道

一个很实用的基于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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号