paraB.timer) {

return 1;

}

if (paraA.timerplayList.song.length() - 1)

{

currentSound = 1;

}

playList_cb.selectedIndex = currentSound;

loadSound(playList.song[currentSound].@data);

loadLrc(lrcList.lrc[currentSound].@data);

}

7.音量控制

volumeDegrees = volumeSlider_mc.volumeKnob_mc.x;//初始化

volumeSlider_mc.volumeKnob_mc.visible = true;

volumeSlider_mc.volumeKnob_mc.addEventListener(MouseEvent.MOUSE_DOWN, volumeKnobStartDrag);

function volumeKnobStartDrag(evt:MouseEvent):void

{

rec = new Rectangle(volumeSlider_mc.spanning_mc.x, volumeSlider_mc.volumeBar_mc.y, volumeSlider_mc.spanning_mc.width + 1, 0);

volumeSlider_mc.volumeKnob_mc.startDrag(false, rec);

stage.addEventListener(MouseEvent.MOUSE_MOVE, volumeAdjust);

stage.addEventListener(MouseEvent.MOUSE_UP, volumeKnobStopDrag);

}

function volumeKnobStopDrag(evt:MouseEvent):void

{

volumeSlider_mc.volumeKnob_mc.stopDrag();

if(volumeSlider_mc.volumeKnob_mc.x != 0)

{

volumeDegrees = volumeSlider_mc.volumeKnob_mc.x;

}

stage.removeEventListener(MouseEvent.MOUSE_UP, volumeKnobStopDrag);

volumeSlider_mc.volumeKnob_mc.removeEventListener(MouseEvent.MOUSE_MOVE, volumeAdjust);

}

function volumeAdjust(evt:MouseEvent = null):void

{

volumeSlider_mc.volumeBar_mc.width = volumeSlider_mc.volumeKnob_mc.x;

if(volumeSlider_mc.volumeKnob_mc.x == 0)

{

volumeIcon_mc.gotoAndStop("mute");

}

else

{

volumeIcon_mc.gotoAndStop("unmute");

//volumeDegrees = volumeSlider_mc.volumeKnob_mc.x;

}

if (soundControl != null)

{

xform = soundControl.soundTransform;

xform.volume = volumeSlider_mc.volumeKnob_mc.x / volumeSlider_mc.spanning_mc.width;

soundControl.soundTransform = xform;

}

}

volumeIcon_mc.visible = true;

volumeIcon_mc.addEventListener(MouseEvent.CLICK, switchVolumeStatus);

function switchVolumeStatus(evt:MouseEvent):void

{

if(volumeIcon_mc.currentLabel == "unmute")

{

volumeDegrees = volumeSlider_mc.volumeKnob_mc.x;

volumeSlider_mc.volumeKnob_mc.x = 0;

volumeAdjust();

volumeIcon_mc.gotoAndStop("mute");

}

else

{

volumeSlider_mc.volumeKnob_mc.x = volumeDegrees;

volumeAdjust();

volumeIcon_mc.gotoAndStop("unmute");

}

}

8.进度控制

//进度条控制

progKnob_mc.visible = true;

function progKnobUpdate(evt:Event):void

{

songtime_txt.text=getTimeFmt(soundControl.position);

songlenght_txt.text=getTimeFmt(sound.length);

var pos:Number = (progBar_mc.width - progKnob_mc.width) * soundControl.position / sound.length;

if(!isNaN(pos))

{

progKnob_mc.x = progBar_mc.x + pos;

}

else

{

progKnob_mc.x = progBar_mc.x;

}

}

progKnob_mc.addEventListener(MouseEvent.MOUSE_DOWN, progKnobStartDrag);

function progKnobStartDrag(evt:MouseEvent):void

{

if(sound != null)

{

pauseSound();

rec = new Rectangle(progBar_mc.x, progBar_mc.y, progBar_mc.width - progKnob_mc.width, 0);

progKnob_mc.startDrag(false, rec);

stage.addEventListener(MouseEvent.MOUSE_UP, progKnobStopDrag);

}

}

function progKnobStopDrag(evt:MouseEvent):void

{

progKnob_mc.stopDrag();

var pos:Number = sound.length * (progKnob_mc.x - progBar_mc.x) / (progBar_mc.width - progKnob_mc.width);

playSound(pos);

stage.removeEventListener(MouseEvent.MOUSE_UP, progKnobStopDrag);

}

9.频谱算法

//视觉化音频

var ba:ByteArray = new ByteArray();

var gr:Sprite = new Sprite();

gr.x = 88;

gr.y = 285;

addChild(gr);

var time:Timer = new Timer(50);

time.addEventListener(TimerEvent.TIMER,timerHandler);

time.start();

function soundCompleteHandler(evt:Event):void

{

time.stop();

}

function timerHandler(evt:TimerEvent):void

{

SoundMixer.computeSpectrum(ba,true);

var i:int;

gr.graphics.clear();

gr.graphics.lineStyle(0, 0x341ed8);

gr.graphics.beginFill(0x341ed8);

gr.graphics.moveTo(0, 0);

var w:uint = 2;

for (i = 0; i < 126; i += w)

{

var t:Number = ba.readFloat();

var n:Number = (t * 25);

gr.graphics.drawRect(i * 1.43, 0, w*.5, -n);

}

}

10.时间算法

function getTimeFmt(ms:Number):String{

var s:int=int(ms/1000);

var m:int=int(s/60);

s-=m*60;

var h:int;

h=int(m/60);

m-=h*60;

return make2Str(m)+":"+make2Str(s);

}

function make2Str(i:int):String{

if(i<10) return "0"+i;

else return ""+i;

}

四、 参考资料

Adoble Flash cs4 Actioanscript3.0经典教程 人民邮电出版社

ActionScript3.0 开发技术大全 清华大学出版社

android音乐播放器课程设计报告,基于AS3.0的音乐播放器设计课程设计报告.doc相关推荐

  1. 硬件课程设计:基于STM32的多功能播放器之MP3音乐播放

    3 MP3音乐播放 3.1 功能介绍 3.1.1 设计思路 音乐播放是手机等电子产品最常见的功能,也是最具娱乐性的功能,在该模块中,我先从SD卡中读取已存放的MP3音乐文件,然后将读取的字节流依次送人 ...

  2. 硬件课程设计:基于STM32的多功能播放器之小游戏

    4 游戏 4.1 功能介绍 4.1.1 设计思路 为了扩展开发板的应用,同时增加实验的难度和趣味性,我设计了一个类似赛车的小游戏.游戏中共有6条车道,同时有5个障碍物,用按键1和按键2控制赛车更换不同 ...

  3. 硬件课程设计:基于STM32的多功能播放器之小说阅读

    1 小说阅读功能 1.1 功能介绍 1.1.1 设计思路 在TFTLCD屏上显示中英文文本文件是本次硬件课程设计的基本要求,也是我设计的多功能播放器最重要的功能,要求能够读取事先存储在SD卡中的文本文 ...

  4. 硬件课程设计:基于STM32的多功能播放器之聊天功能

    6 聊天功能 6.1 功能介绍 6.1.1 设计思路        在该功能模块中,我打算模拟手机QQ的聊天功能,不同的是QQ是通过互联网实现手机与手机之间的通信,而我是通过蓝牙实现stm32开发板与 ...

  5. 基于vue2.0实现音乐/视频播放进度条组件的思路及具体实现方法+代码解释

    基于vue2.0实现音乐/视频播放进度条组件的方法及代码解释 需求分析: ①:进度条随着歌曲的播放延长,歌曲播放完时长度等于黑色总进度条长度:时间实时更新. ②:当滑动按钮时,实时更新播放时间,橙色进 ...

  6. 【毕业设计_课程设计】基于安卓APP的音乐播放器设计

    文章目录 0 项目说明 1 模块设计架构 2 界面效果 3 项目源码 0 项目说明 基于安卓APP的音乐播放器设计 提示:适合用于课程设计或毕业设计,工作量达标,源码开放 1 模块设计架构 1.音乐播 ...

  7. 画出android音乐播放器的类图,基于Qt图形框架音乐播放器的设计与实现

    随着互联网软件行业的快速发展,应用市场的软件种类更是琳琅满目,其中,生活娱乐类的软件种类最为繁多,就以本文涉及到的音乐播放器(多媒体)来说,国内目前的主流音乐播放器有QQ音乐.酷狗音乐.百度音乐.网易 ...

  8. 【毕业设计_课程设计】基于大数据个性化音乐推荐算法分析

    文章目录 0 前言 1 研究目的 2 研究方法 2.1 传统推荐算法 2.2 基于LightGBM决策树模型的推荐算法 3 研究结论 4 最后 0 前言 基于大数据个性化音乐推荐算法分析 提示:适合用 ...

  9. 【毕业设计_课程设计】基于Spark网易云音乐数据分析

    文章目录 0 项目说明 1 系统模块 2 分析内容 3 界面展示 4 项目工程 0 项目说明 基于Spark网易云音乐数据分析 提示:适合用于课程设计或毕业设计,工作量达标,源码开放 1 系统模块 包 ...

最新文章

  1. 程序连接不上mysql数据库文件_数据库问题(程序连接mysql错误)
  2. [转载]二叉树(BST,AVT,RBT)
  3. UUID正在被NanoID取代?
  4. SQL临时表的生存期问题
  5. Java中的getPath(),getAbsolutePath()和getCanonicalPath()有什么区别?
  6. Beaglebone Back学习七(URAT串口测试)
  7. 强化学习(三)用动态规划(DP)求解
  8. linux如何全局搜索目录,Linux 全目录全文搜索
  9. Kinect v1和Kinect v2的彻底比较
  10. 转载:Python正则表达式
  11. mvn jetty debug
  12. python有哪些用途-Python语言有哪些用途
  13. oracle11g-RHEL5.8-Kernel Parameters and Resource Limits
  14. 中小企业管理软件(管家婆辉煌版2top+)安装教程
  15. 动态规划解决完全背包问题(cpp)
  16. 小木虫刻意隐瞒伪化生学科现状,劝人入坑,天打雷劈!
  17. 场地测量的方法和程序_施工测量的基本方法
  18. 【文字识别】OCR截图文字识别提取(无需安装)拖拽图片,打开图片,图片PDF转文字的好帮手
  19. MongoDB 日志管理
  20. python 量化交易:MACD指标双金叉形态识别

热门文章

  1. 铂顿安全手机,高端商务人士的安心之选
  2. SpringBoot电商后台开发项目总结(1)
  3. Linux下使用gdb单步调试C语言
  4. uniapp刷新当前页面
  5. 世界末日生存服务器中断,生存新作《最后的绿洲》服务器检修 Steam可全额退款...
  6. 无向简单图怎么判断_如何判断车身正不正?其实很简单,3张图就看懂
  7. android后台进程限制,Android O:服务未被后台执行限制停止
  8. FPGA同步和异步电路
  9. nacos配置自动刷新
  10. 【python 爬虫】豆瓣评论全爬取含展开