android音乐播放器课程设计报告,基于AS3.0的音乐播放器设计课程设计报告.doc
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相关推荐
- 硬件课程设计:基于STM32的多功能播放器之MP3音乐播放
3 MP3音乐播放 3.1 功能介绍 3.1.1 设计思路 音乐播放是手机等电子产品最常见的功能,也是最具娱乐性的功能,在该模块中,我先从SD卡中读取已存放的MP3音乐文件,然后将读取的字节流依次送人 ...
- 硬件课程设计:基于STM32的多功能播放器之小游戏
4 游戏 4.1 功能介绍 4.1.1 设计思路 为了扩展开发板的应用,同时增加实验的难度和趣味性,我设计了一个类似赛车的小游戏.游戏中共有6条车道,同时有5个障碍物,用按键1和按键2控制赛车更换不同 ...
- 硬件课程设计:基于STM32的多功能播放器之小说阅读
1 小说阅读功能 1.1 功能介绍 1.1.1 设计思路 在TFTLCD屏上显示中英文文本文件是本次硬件课程设计的基本要求,也是我设计的多功能播放器最重要的功能,要求能够读取事先存储在SD卡中的文本文 ...
- 硬件课程设计:基于STM32的多功能播放器之聊天功能
6 聊天功能 6.1 功能介绍 6.1.1 设计思路 在该功能模块中,我打算模拟手机QQ的聊天功能,不同的是QQ是通过互联网实现手机与手机之间的通信,而我是通过蓝牙实现stm32开发板与 ...
- 基于vue2.0实现音乐/视频播放进度条组件的思路及具体实现方法+代码解释
基于vue2.0实现音乐/视频播放进度条组件的方法及代码解释 需求分析: ①:进度条随着歌曲的播放延长,歌曲播放完时长度等于黑色总进度条长度:时间实时更新. ②:当滑动按钮时,实时更新播放时间,橙色进 ...
- 【毕业设计_课程设计】基于安卓APP的音乐播放器设计
文章目录 0 项目说明 1 模块设计架构 2 界面效果 3 项目源码 0 项目说明 基于安卓APP的音乐播放器设计 提示:适合用于课程设计或毕业设计,工作量达标,源码开放 1 模块设计架构 1.音乐播 ...
- 画出android音乐播放器的类图,基于Qt图形框架音乐播放器的设计与实现
随着互联网软件行业的快速发展,应用市场的软件种类更是琳琅满目,其中,生活娱乐类的软件种类最为繁多,就以本文涉及到的音乐播放器(多媒体)来说,国内目前的主流音乐播放器有QQ音乐.酷狗音乐.百度音乐.网易 ...
- 【毕业设计_课程设计】基于大数据个性化音乐推荐算法分析
文章目录 0 前言 1 研究目的 2 研究方法 2.1 传统推荐算法 2.2 基于LightGBM决策树模型的推荐算法 3 研究结论 4 最后 0 前言 基于大数据个性化音乐推荐算法分析 提示:适合用 ...
- 【毕业设计_课程设计】基于Spark网易云音乐数据分析
文章目录 0 项目说明 1 系统模块 2 分析内容 3 界面展示 4 项目工程 0 项目说明 基于Spark网易云音乐数据分析 提示:适合用于课程设计或毕业设计,工作量达标,源码开放 1 系统模块 包 ...
最新文章
- 程序连接不上mysql数据库文件_数据库问题(程序连接mysql错误)
- [转载]二叉树(BST,AVT,RBT)
- UUID正在被NanoID取代?
- SQL临时表的生存期问题
- Java中的getPath(),getAbsolutePath()和getCanonicalPath()有什么区别?
- Beaglebone Back学习七(URAT串口测试)
- 强化学习(三)用动态规划(DP)求解
- linux如何全局搜索目录,Linux 全目录全文搜索
- Kinect v1和Kinect v2的彻底比较
- 转载:Python正则表达式
- mvn jetty debug
- python有哪些用途-Python语言有哪些用途
- oracle11g-RHEL5.8-Kernel Parameters and Resource Limits
- 中小企业管理软件(管家婆辉煌版2top+)安装教程
- 动态规划解决完全背包问题(cpp)
- 小木虫刻意隐瞒伪化生学科现状,劝人入坑,天打雷劈!
- 场地测量的方法和程序_施工测量的基本方法
- 【文字识别】OCR截图文字识别提取(无需安装)拖拽图片,打开图片,图片PDF转文字的好帮手
- MongoDB 日志管理
- python 量化交易:MACD指标双金叉形态识别