迷你音乐播放器mp3Player1.0 Beta1 
=================
//What's new:

主要功能特色:
1.支持歌曲名称,歌手名称以及专辑等关键字搜索。
2.支持随机搜索(不用输入关键字)。
3.支持播放、暂停和音量调节。
4.搜索结果支持翻页。
5.支持播放进度调节。
6.提供歌手大全由(A-Z)排序,以及流行歌手排行。
7.该程序不需要安装直接运行即可。
8.程序文件大小为1.76M。
9.支持自动过滤过大,无法链接、无法播放的文件。
10.支持精确显示歌曲播放和下载进度。
11.提供歌曲下载到本地,自动命名方便保存。
12.无人值守的自动搜索自动播放功能。

//使用小提示:
=================
1.点击人物眼睛用来切换歌手排行。
2.点击LOGO图标弹出下载歌曲对话框。
3.如果网速过慢时会过滤掉部分歌曲。

源码地址:收到消息的群共享提供免费下载使用!
皮肤更换,本地播放,歌词显示等功能继续开发中...
========================

/*
开发者:
============
黑白人动漫工作室
QQ:86963729
MSN:fcsfms@hotmail.com
Email:syxu@3c800.com
http://www.3c800.com
*/
//所有源代码
/*
学习提示要点:
1.利用搜索引擎获取数据。
2.如何进行数据解析和处理。
3.如何使用List组件。
4.如何使用MediaPlayback组件。
5.综合技术:变量、数组、字符串处理、
监听机制、分页、下载文件以及进度跟踪等。
*/
stop();
//上传下载类
import flash.net.FileReference;
//按 Unicode 进行编码
System.useCodepage = true;
//歌曲搜索引擎//
/*选择适合自己的搜索引擎
http://mp3.baidu.com/
http://mp3.sogou.com/
http://music.cn.yahoo.com/
http://mp3.zhongsou.com/
http://m.iask.com/
http://mp3.qihoo.com/
http://www.hao123.com/mp3s.htm
*/
var mp3_url:String = "http://mp3.zhongsou.com/";
//临时记录搜索结果
var mp3Data:String;
//记录搜索所得的歌曲数量
var num:Number = 1;
//页数
var page:Number = 1;
//歌曲ID
var id:Number = 0;
//歌曲总时间
var totaltime:Number = 4000000;
//下载百分比
var pec:Number = 0;
//下载mp3文件路径
var downloadName:String;
//下载mp3文件名称
var downloadData:String;

//为了提高搜索速度先把歌手列表搜索出来存数组里。
var mp3Name = new Array("周杰伦", "S.H.E", "刘德华", "五月天", "张学友", "林俊杰", "李宇春", "王力宏", "蔡依林", "王心凌", "任贤齐", "王菲", "孙燕姿", "信乐团", "郑源", "张韶涵", "韩红", "张靓颖", "张信哲", "罗志祥", "梁静茹", "beyond", "刘若英", "许巍", "伍佰", "邓丽君", "陈楚生", "王杰", "马天宇", "水木年华", "周华健", "5566", "黄家驹", "F.I.R", "许飞", "小虎队", "谢霆锋", "阿杜", "吴克群", "羽泉", "萧亚轩", "张惠妹", "花儿乐队", "潘玮柏", "黎明", "后弦", "孙楠", "张杰", "陈奕迅", "南拳妈妈", "陶喆", "动力火车", "金莎", "张栋梁", "张国荣", "胡彦斌", "杨坤", "陈小春", "张宇", "成龙", "光良", "郭富城", "迪克牛仔", "王栎鑫", "阿木", "莫文蔚", "游鸿明", "郑智化", "品冠", "赵薇", "蔡妍", "周传雄", "那英", "齐秦", "郑秀文", "林志颖", "陈慧琳", "何洁", "谢娜", "李慧珍", "郭德纲", "蔡琴", "田震", "安七炫", "刘欢", "谭咏麟", "陈慧娴", "白雪", "卓依婷", "韩雪", "陈冠希", "刘亦菲", "容祖儿", "Twins", "卫兰", "香香", "阿桑", "宋祖英", "朴树", "屠洪刚", "梅艳芳", "张含韵", "高胜美", "Tank", "赵传", "李圣杰", "李克勤", "古巨基", "安以轩", "罗大佑", "凤凰传奇", "黄征", "张雨生", "腾格尔", "零点乐队", "罗百吉", "梁咏琪", "王强", "范玮琪", "杨丞琳", "老狼", "郑中基", "费玉清", "兄弟联", "李玖哲", "海鸣威", "东来东往", "吴奇隆", "阿牛", "郑伊健", "吴建豪", "汪峰", "183CLUB", "阿宝", "苏有朋", "许茹芸", "F4", "孟庭苇", "戴佩妮", "Rain", "伊能静", "许慧欣", "童安格", "张卫健", "黄义达", "弦子", "黑鸭子", "爱乐团", "陈百强", "温岚", "黄品源", "誓言", "张敬轩", "张震岳", "林忆莲", "姜育恒", "林心如", "杜德伟", "薛之谦", "麻吉弟弟", "安又琪", "周蕙", "徐怀钰", "张柏芝", "金海心", "谢军", "韩磊", "邰正宵", "孙悦", "黄晓明", "范逸臣", "何润东", "黄雅莉", "江美琪", "黄安", "无印良品", "黄立行", "阿里郎", "许冠杰", "黄圣依", "郭峰", "许美静", "袁泉", "萧萧", "李玲玉", "阿朵", "杨钰莹", "叶倩文", "蜜雪薇琪", "黑豹", "杨玉莹", "陈晓东", "许绍洋", "毛阿敏", "李宗盛", "林志炫", "许志安", "草蜢", "潘美辰", "蔡健雅");
//发送URL请求
function loadData(sPost):Void {
 var my_lv:LoadVars = new LoadVars();
 //发送URL请求
 my_lv.load(mp3_url+"m?w="+sPost+"&bg="+page+"&ty=16");
 //当数据加载成功时
 my_lv.onLoad = function(success:Boolean):Void  {
  if (success) {
   //转义十六进制序列字符串。
   var s:String = unescape(my_lv.toString()).toLowerCase();
   //首先提取歌曲内容一块
   var ay:Array = s.split("<input name=aid");
   now = 1;
   //解析加载的数据
   DataString(ay[1]);
  }
 };
}

//解析加载的数据
function DataString(s:String):Void {
 mp3Data = s;
 //如果没找到与搜索内容相关的歌曲信息
 if (mp3Data.indexOf(".mp3") == -1) {
  musicNum = "没搜索到歌曲";
  page = 1;
  id = 0;
  skey.text = mp3Name[random(mp3Name.length)];
  return;
 }
 //歌曲名称                                               
 var mp3NameStr:String = subStrIndexOf(mp3Data, "&s=", "&");
 //歌手名称
 var mp3SingerStr:String = subStrIndexOf(mp3Data, "g=", "&");
 //歌曲的url
 var mp3UrlStr:String = subStrIndexOf(mp3Data, "surl=", "&url");
 //输出解析结果
 //trace("/t/t第 "+num+" 首歌");
 //trace("歌名:"+mp3NameStr);
 //trace("歌手:"+mp3SingerStr);
 //trace("mp3地址:"+mp3UrlStr);
 //trace("/n");
 musicNum = "搜索到"+num+"首歌";
 music_list.addItem({label:mp3NameStr+"["+mp3SingerStr+"]", data:mp3UrlStr, icon:"music_ico"});
 music_list.iconField = "icon";
 //如果还有下一个地址,递归,继续解析
 if (mp3Data.indexOf("surl=", 0) != -1) {
  num++;
  DataString(mp3Data);
 }
}

//输出str内 k-j 中间的一段,保存到mp3Data。
function subStrIndexOf(str:String, k:String, j:String):String {
 var nK:Number = str.indexOf(k);
 var sK:String = str.substr(nK+k.length);
 var nJ:Number = sK.indexOf(j);
 mp3Data = sK.substr(nJ+j.length);
 return (sK.substr(0, nJ));
}

//当按下搜索按钮时,发送URL请求
key_bt.onRelease = function():Void  {
 page = 1;
 music_list.removeAll();
 sousuo(skey.text);
};
//随机搜索
sj_bt.onRelease = function():Void  {
 page = 1;
 skey.text = mp3Name[random(mp3Name.length)];
 sousuo(skey.text);
};
//上一页
up_bt.onRelease = function() {
 if (page>1) {
  page--;
 } else {
  page = 1;
 }
 sousuo(skey.text);
};
//下一页
down_bt.onRelease = function() {
 page++;
 sousuo(skey.text);
};
//搜索
function sousuo(key) {
 id = 0;
 music_list.removeAll();
 loadData(skey.text);
 peoplemc.gotoAndPlay(2);
}
//回调
function callback() {
 id++;
 if (id == music_list.length) {
  id = 0;
  page++;
  sousuo(skey.text);
 }
 trace(id);
 mp3.setMedia(music_list.getItemAt(id).data,"MP3");
 msg.text = "随机播放:"+music_list.getItemAt(id).label;
 mp3.play();
 downloadName = music_list.getItemAt(id).label;
 downloadData = music_list.getItemAt(id).data;
 timer(0);
}
//计时
function timer(i) {
 this.onEnterFrame = function() {
  i++;
  trace(i);
  if (i>25 && pec == 0) {
   callback();
  } else if (i>100 && pec<5) {
   callback();
  } else if (i>150 && pec>10) {
   delete this.onEnterFrame;
  }
 };
}
//监听是否播放停止
var listenerObject:Object = new Object();
listenerObject.complete = function(eventObj:Object) {
 callback();
};
mp3.addEventListener("complete",listenerObject);
// 侦听进度。
var myListener:Object = new Object();
myListener.progress = function(eventObj:Object) {
 pec = int(mp3.bytesLoaded/mp3.bytesTotal*100);
 if (pec == 100) {
  loadmc.loadtxt.text = "";
 } else {
  loadmc.loadtxt.text = "loading..."+pec+"%";
 }
 if (mp3.bytesTotal>totaltime) {
  callback();
 }
};
mp3.addEventListener("progress",myListener);

//
var music_listener:Object = new Object();
music_listener.change = function(evt_obj:Object) {
 mp3.setMedia(music_list.selectedItem.data,"MP3");
 msg.text = "正在播放:"+music_list.selectedItem.label;
 trace(music_list.selectedItem.data);
 downloadName = music_list.selectedItem.label;
 downloadData = music_list.selectedItem.data;
 peoplemc.gotoAndPlay(2);
};
//下载歌曲
getbt.onRelease = function() {
 download();
};
getbt.onRollOver = function() {
 this._alpha = 30;
};
getbt.onRollOut = function() {
 this._alpha = 15;
};
//下载歌曲文件
function download() {
 var fileRef:FileReference = new FileReference();
 trace(music_list.selectedItem.data);
 if (!fileRef.download(downloadData, downloadName+".mp3")) {
  trace("dialog box failed to open.");
 }                                                               
}
// 添加侦听器。
music_list.addEventListener("change",music_listener);
music_list.setStyle("alternatingRowColors",Array(0xF7DC9C, 0xFBEED0));
//读取歌手列表(此处省掉了一个播放列表)//
function addSinger() {
 singer_list.removeAll();
 var lightVisible:Boolean = peoplemc.visible;
 peoplemc.visible = !lightVisible;
 peoplemc.gotoAndPlay(2);
 if (peoplemc.visible == false) {
  for (i=0; i<singer.length; i++) {
   singer_list.addItem({label:singer[i], icon:"singer_ico"});
   singer_list.iconField = "icon";
  }
  skey.text = singer[random(singer.length)];
  sousuo();
  totaltime = 3500000;
 } else {
  for (i=0; i<mp3Name.length; i++) {
   singer_list.addItem({label:mp3Name[i], icon:"singer_ico"});
   singer_list.iconField = "icon";
  }
  skey.text = mp3Name[random(mp3Name.length)];
  sousuo();
  totaltime = 4500000;
 }
}
//歌手列表选择
var singer_listener:Object = new Object();
singer_listener.change = function(evt_obj:Object) {
 page = 1;
 skey.text = singer_list.selectedItem.label;
 sousuo(skey.text);
};

// 添加侦听器。
singer_list.addEventListener("change",singer_listener);
singer_list.setStyle("alternatingRowColors",Array(0xF7DC9C, 0xFBEED0));
eyebt.onRelease = function() {
 addSinger();
};
_root.onMouseDown = function() {
 totaltime = 4000000;
};
//初始化
addSinger();
callback();

 
播放效果图一

 
下载歌曲效果图

 
播放效果图二

name="google_ads_frame" width="336" height="280" frameborder="0" src="http://pagead2.googlesyndication.com/pagead/ads?client=ca-pub-7223872733800630&dt=1224783768671&lmt=1224503895&output=html&slotname=3782529755&correlator=1224783768669&url=http%3A%2F%2Fwww.flashas.net%2Fhtml%2FFLASHyejiexinwen%2FFlashPlayer%2F20070808%2F2043.html&ea=0&ref=http%3A%2F%2Fwww.google.cn%2Fsearch%3Fhl%3Dzh-CN%26newwindow%3D1%26q%3Dflash%25E9%259F%25B3%25E4%25B9%2590%25E6%2592%25AD%25E6%2594%25BE%25E5%2599%25A8%25E6%25BA%2590%25E7%25A0%2581%26revid%3D720875461%26sa%3DX%26oi%3Drevisions_inline%26resnum%3D0%26ct%3Dbroad-revision%26cd%3D4&frm=0&ga_vid=784162509.1224783769&ga_sid=1224783769&ga_hid=1580632223&flash=9.0.124&u_h=768&u_w=1024&u_ah=708&u_aw=1024&u_cd=32&u_tz=480&u_his=1&u_java=true&u_nplug=11&u_nmime=28" marginwidth="0" marginheight="0" vspace="0" hspace="0" allowtransparency="true" scrolling="no" style="margin-top: 0px; margin-bottom: 0px; font-family: 宋体; ">

Flash版(迷你音乐播放器mp3Player1.0 Beta1 )附源码相关推荐

  1. 【Android-Service】基于MVP的音乐播放器demo实现思路(附源码)

    最近在学习service相关的内容,在该部分的学习过程中,根据学习视频中的内容进行了总结归纳,以下是音乐播放器demo的开发思路,具体步骤及源码: 有关MVP框架的内容可看: link. 实现效果: ...

  2. jspm伊人静听音乐播放器系统毕业设计(附源码、运行环境)

    用户登录界面 歌曲排行榜界面  歌曲大全管理  歌曲排行榜管理  前台首页界面   免费赠送本源代码.数据库,请私信

  3. 迷你音乐播放器v1.0正式上线!

    迷你音乐播放器V1.0正式上线! 版本介绍: 1.随机播放切换开关(通过点击专辑图片) 2.通过拖动歌曲名及艺术家名调整歌曲播放进度 3.手机浏览访问支持熄屏播放 4.暂不支持在线搜索功能 快来一起分 ...

  4. 音乐播放器类的Android项目源码

    收集了很多音乐播放器类的Android项目源码,非常不错的开源项目,会让你事半功倍,希望大家补充...谢谢! Android基于经纬度切歌的冲绳音乐播放器源码 http://neast.cn/foru ...

  5. JAVA毕业设计Vue.js音乐播放器设计与实现计算机源码+lw文档+系统+调试部署+数据库

    JAVA毕业设计Vue.js音乐播放器设计与实现计算机源码+lw文档+系统+调试部署+数据库 JAVA毕业设计Vue.js音乐播放器设计与实现计算机源码+lw文档+系统+调试部署+数据库 本源码技术栈 ...

  6. 收集了很多音乐播放器类的Android项目源码,非常不错的开源项目【转】

    from:http://blog.csdn.net/java173842219/article/details/54096598 JieCaoVideoPlayer立志成为Android平台使用最广泛 ...

  7. 收集了很多音乐播放器类的Android项目源码,非常不错的开源项目

    JieCaoVideoPlayer立志成为Android平台使用最广泛的视频播放控件 http://neast.cn/forum.php?mod=viewthread&tid=61610&am ...

  8. Java音乐播放器,窗体程序 完整源码

    今天为大家分享一个音乐播放器的开发与制作,目前系统已经完成了初步功能,后续会进一步完善.整个系统界面漂亮,有完整得源码,希望大家可以喜欢.喜欢的帮忙点赞和关注.一起编程.一起进步 开发环境 开发语言为 ...

  9. android音乐播放器上一首,安卓源码(音乐播放器,有播放和下一首,和进度条等功能)...

    [实例简介] 安卓音乐播放器,可以完美播放音乐,放下使用,在安卓eclipse下使用. [实例截图] [核心代码] Player └── Player ├── AndroidManifest.xml ...

最新文章

  1. HMM——维特比算法(Viterbi algorithm)
  2. c语言数位递增的数解题思路,【菜鸟求助】21位数的花朵数问题,求解题思路
  3. js将数组元素随机排序的方法
  4. 【NLP】如何清理文本数据?
  5. 关于phpcmsv9更新缓存出现链接被重置的问题
  6. mysql读写分离_MySQL基于amoeba读写分离实验
  7. android 读后台数据,Android 模拟后台数据返回 ,便与测试
  8. Unity内存管理你应该知道的底层原理
  9. 2.react的diff算法(2020.12.07)
  10. 软件测试2019:第七次作业
  11. Terracotta - 分布式共享对象
  12. flume1.6 + syslogtcp + kafka 日志采集(二)
  13. css3学习总结9--CSS3过渡
  14. 分布式技术追踪 2018年第五期
  15. 主成分分析matlab代码_主成分分析,换个角度看世界
  16. 牛刀:中国未来房价基本走势…
  17. 生死看淡,不服就干。SQL常见的一些优化。
  18. 计算机网络丢包排查,ping命令图文教程,电脑测试网络丢包延迟,检测网络故障通不通...
  19. win7屏幕亮度怎么调_win7屏幕亮度调整方法
  20. hive与impala相关

热门文章

  1. windows7 硬盘安装工具 nt6 hdd installer v2.8.6
  2. ​AGV机器人:基于视觉避障的理论基础
  3. [亲测可用]springBoot调用对方webService接口的几种方法示例
  4. 打印DPI如何与计算机DPI一致,打印效果失真 你了解DPI与照片关系么?
  5. 光标跟随放大镜js特效代码
  6. Greenplum概念学习——在线扩容工具Gpexpand
  7. Linux下实现Mysql的本地备份,异地备份
  8. 应用comsol分析水力压裂对井眼附近应力场的影响
  9. 【PHPWord】基于Word模板替换生成输出表格动态生成内容、合并单元格、设置单元格背景颜色
  10. 数据结构 —— 单链表(超详细图解 接口函数实现)