揭露Flex播放器使用内幕

开发 后端
你对Flex播放器的使用是否比较熟悉,这里向大家简单介绍一下ProgressBar实现加载歌曲缓冲进度条,HSlide调节滑秆等技巧。

本文和大家重点讨论一下Flex播放器的使用,主要介绍一下SoundMixer.computeSpectrum()分析音频曲线,ProgressBar实现加载歌曲缓冲进度条和HSlide调节滑秆等技巧,希望本文的介绍能让你有所收获。

Flex播放器

一时兴起,玩起了Flex,本来还想要做个Flex博客,不过目前还只能在里面树个公告。。。没办法做完啊,河蟹的个杯具的!Flex布局不像是CSS,精美Flash动画不是拖一个两个控件就能做出来滴,而是一笔一条线绘制出来滴!这些我都还不熟悉,所有折腾快一个星期了,每天都是搞到头大才睡觉,今天终于能出一个简单的Flex播放器。

一直很喜欢音乐这个东西,喜欢Jay,更喜欢他的歌,也很崇拜小猪,他的一段灰色空间曾让我激流奋进,想过自己能做个播客放自己喜欢听的歌曲,出于自恋那样会更有一点点满足感。呃~走神了,前二天无意看到一群教师的个人博客,深深的被他们的博文所吸引,无论是谈技术还是记录生活的,写得都是那么的真切,还有坚持每日一博的,坚持不放弃...

mx:ProgressBar实现加载歌曲缓冲进度条

ProgressBar有三大mode模式,分别为event、manual、polled,event为基于事件驱动模式,可设置source对象自动显示加载进程;manual为手动模式,需要调用ProgressBar.setProgress()方法设置滚动条进度;polled为轮询模式,本例使用的manual模式,Sound加载load请求歌曲添加一个ProgressEvent.PROGRESS处理中监听事件,然后根据Sound已加载的bytes和bytesTotal数,设置setProgress进度。这里需要注意在切换歌曲的时候先要移除ProgressEvent.PROGRESS事件,否则之前播放歌曲还未加载完又切换load新歌曲时回出现ProgressBar触发多个PROGRESS事件被设置进度出现来回滚动的问题。

mx:HSlide调节滑秆

这个控件在本例中2处使用,实现对Flex播放器播放进度和声音大小的控制。最一开始调整播放进度的问题难倒了我很久,因为在歌曲播放过程中HSlide要自动滑动当前播放位置,同时又需要能手动拖动播放位置,HSlide本来有一个很好的change事件用来侦听改变,但是我使用定时器设置HSlide的value的时竟然也给我触发change事件,参考了Adobe哥官网的帮助文档,说是Slider组件的值因鼠标或键盘交互操作而改变时调度,如果liveDragging属性是true,则在用户移动滑块时持续调度该事件。如果liveDragging是false,则在用户释放滑块时调度该事件。但是无论我怎么设置,在代码里改变了HSlide的value值怎会触发change事件,不是说在用户交互操作而改变时调度吗?无赖啊,后来只能折中采取监听thumbDrag滑秆拖动时事件,这个事件Adobe哥的解释是当按下滑块并随后随鼠标移动时调度,这样会有一个小问题,就是需要拖动滑秆按下时才会触发,点击无效。

SoundMixer.computeSpectrum()分析音频曲线

本例你看到显示的音频曲线其实是右64个绘制成条状的Canvas控件排列而成,然后使用定时器每间隔100毫秒重新设置他们的scaleY位置以呈现出变幻曲线的效果,代码只有三行很简单,具体可参见我下面源码给出的timerTick事件。这里为什么要用定时器呢?在网上看别人是监听Event.ENTER_FRAME事件重绘音频曲线的,不想搞那么麻烦就直接用定时器了,随便根据bytesTotal和bytesLoaded计算下歌曲播放时间,使用100毫秒的定时器也并好耗站资源,CPU没有涨很高。

【编辑推荐】

  1. Flex播放器同步显示歌词
  2. Flex安全沙箱问题解决方法
  3. 技术前沿 看Flex客户端缓存技术如何使用
  4. 解析Flex全屏模式设置方法
  5. Flex内存泄露解决方法和内存释放优化原则

 

责任编辑:佚名 来源: jonllen.com
相关推荐

2010-08-06 13:59:00

Flex和Html交互

2010-07-30 09:35:47

Flex播放器

2010-07-30 09:50:36

Flex播放器

2010-08-23 15:59:33

MarginCSS

2010-05-14 14:53:24

MyEclipse S

2010-09-27 11:12:46

MyEclipseJVM内存

2010-08-11 13:39:16

Flex3.0Flv播放器

2010-07-28 09:10:41

Flex2.0

2011-06-13 09:33:04

2022-08-16 17:37:06

视频播放器鸿蒙

2010-08-12 14:51:40

Flex4

2023-08-26 19:07:40

VLC旋转视频

2023-12-06 08:46:20

CSSFlex内幕

2011-06-27 11:23:21

Qt 音乐播放器

2010-03-31 16:47:09

Ubuntu 10.0

2011-07-20 16:21:20

iPhone 视频 播放器

2009-07-16 14:09:24

Flex3到Flex4

2011-09-09 11:28:35

Android Mus

2015-05-21 15:25:42

VLC播放器

2011-09-05 18:08:01

MTK音频播放器
点赞
收藏

51CTO技术栈公众号