功能描述
- 暂停/播放
- 停止
- 上一首
- 下一首
- 音量调整
- 播放进度调整
效果图如下:
Flex实现比较简单,代码如下:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
fontSize="12" creationComplete="init()"
minWidth="955" minHeight="600">
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.controls.Alert;
public var sound:Sound;
public var chan:SoundChannel;
private const server:String = "assets/sound/";
public var pausePos:int = 0;
public var tempper:Number = 0;
private var ac:ArrayCollection =new ArrayCollection(["斯琴高丽的伤心.mp3", "曲终人散.mp3","木兰情.mp3","烟花易冷.mp3"]);
private var timer:Timer = new Timer(10, 0);
[Embed(source="assets/sound/play.png")]
private var playIcon:Class;
[Bindable]
[Embed(source="assets/sound/stop.png")]
private var stopIcon:Class;
[Embed(source="assets/sound/pause.png")]
private var pauseIcon:Class;
[Bindable]
[Embed(source="assets/sound/pre.png")]
private var preIcon:Class;
[Bindable]
[Embed(source="assets/sound/next.png")]
private var nextIcon:Class;
[Bindable]
[Embed(source="assets/sound/pre2.png")]
private var pre2Icon:Class;
[Bindable]
[Embed(source="assets/sound/next2.png")]
private var next2Icon:Class;
[Bindable]
[Embed(source="assets/sound/sound.png")]
private var soundIcon:Class;
[Bindable]
[Embed(source="assets/sound/full.png")]
private var fullIcon:Class;
//歌曲序列编号
private var k:int=0;
private function init():void{
loadSound();
}
private function loadSound():void {
if(chan != null) {
chan.stop();
}
if(k==0){
img3.enabled=false;
}else if(k>=ac.length-1){
img4.enabled=false;
}else if(k==ac.length){
k=0;
}else{
img3.enabled=true;
img4.enabled=true;
}
myPanel.title=ac[k];
timer.stop();
sound = new Sound();
var req:URLRequest =new URLRequest(server + ac[k]);
sound.load(req);
timer.addEventListener(TimerEvent.TIMER, timerHandler);
timer.start();
pausePos = 0;
chan = sound.play();
img1.setStyle("skin",pauseIcon);
}
private function timerHandler(event:TimerEvent):void{
tempper = (chan.position/sound.length)*100;
bar.setProgress(tempper,100);
}
//播放和暂停按钮
private function playHandler():void{
var c:Class=img1.getStyle("skin");
if(c==pauseIcon){
chan.stop();
img1.setStyle("skin",playIcon);
pausePos = chan.position;
}else if(pausePos!=0){
chan = sound.play(pausePos);
img1.setStyle("skin",pauseIcon);
pausePos = chan.position;
}else{
loadSound();
}
}
//停止按钮
private function playStopHandler():void{
if(chan != null) {
timer.stop();
bar.setProgress(0,100);
chan.stop();
pausePos = 0;
img1.setStyle("skin",playIcon);
}
}
//进度条
protected function bar_clickHandler(event:MouseEvent):void{
var c:Class=img1.getStyle("skin");
if(c==pauseIcon){
chan.stop();
chan = sound.play((event.localX/bar.width) * sound.length);
}
}
//设置声音
private function scanVolume():void{
var stf:SoundTransform = new SoundTransform(volumeSlider.value,0);
chan.soundTransform = stf;
}
private function playPreHandler():void{
k--;
loadSound();
}
private function playNextHandler():void{
k++;
loadSound();
}
]]>
</mx:Script>
<mx:Panel id="myPanel" x="34" y="26" width="478" height="399" layout="absolute">
<mx:VideoDisplay x="0" y="0" width="100%" height="303"/>
<mx:ProgressBar x="0" y="311" height="9" width="100%" id="bar" labelPlacement="bottom" themeColor="#F20D7A"
minimum="0" maximum="100" label="" direction="right" mode="manual" click="bar_clickHandler(event)"/>
<mx:LinkButton id="img1" x="10" y="328" width="16" click="playHandler()"/>
<mx:LinkButton id="img2" x="34" y="328" width="16" click="playStopHandler()" icon="{stopIcon}"/>
<mx:LinkButton id="img3" x="58" y="328" width="16" click="playPreHandler()" icon="{preIcon}" disabledIcon="{pre2Icon}"/>
<mx:LinkButton id="img4" x="82" y="328" width="16" click="playNextHandler()" icon="{nextIcon}" disabledIcon="{next2Icon}"/>
<mx:Image id="img5" x="295" y="328" width="16" source="{soundIcon}"/>
<mx:HSlider x="319" y="328" width="91" change="scanVolume()" id="volumeSlider" height="20"/>
<mx:LinkButton id="img6" y="328" width="16" right="10" icon="{fullIcon}"/>
</mx:Panel>
</mx:Application>
- 大小: 14.3 KB
分享到:
相关推荐
总之,Flex MP3播放器是一个综合运用Flex技术的实例,展示了音频处理、UI设计和数据同步等多个方面的技能。通过研究这个项目,开发者可以深入了解如何在Flex环境中创建高效、功能丰富的多媒体应用程序。
这个简易的MP3播放器展示了Flex4在创建交互式媒体应用方面的潜力,虽然功能可能相对简单,但涉及的技术层面广泛,包括多媒体处理、事件驱动编程、UI设计等多个方面。通过深入学习和实践,开发者可以创建更复杂、功能...
Flex MP3播放器是一款基于Adobe Flex技术开发的MP3音频播放器。Flex是ActionScript 3.0的一个框架,主要用于构建富互联网应用程序(Rich Internet Applications, RIA)。它使用MXML和ActionScript来构建用户界面,并...
总的来说,开发一个Flex和AIR的MP3播放器涉及到多个方面:理解Flex的MXML和ActionScript、掌握音频处理、设计用户界面、利用AIR特性以及可能的动画效果。通过这个教程,你应该能够逐步学会如何创建一个功能完备且...
总之,使用Flex制作MP3播放器是一个涉及UI设计、音频处理、事件机制、数据管理等多个方面的综合性项目。通过深入学习和实践,开发者不仅可以掌握Flex的相关技能,还能提升对多媒体处理和用户体验设计的理解。这个MP3...
总的来说,Flex超炫MP3播放器的开发涉及到的技术和概念广泛,涵盖了前端开发的多个方面,包括UI设计、事件处理、音频处理和动画效果等。通过学习和实践这样的项目,开发者可以深入理解Flex框架的强大力量和灵活性。
总之,Flex MP3播放器的开发涉及到文件选择、音频加载、播放控制和元数据显示等多个方面,是学习Flex基础和多媒体处理的好项目。通过这个项目,初学者可以加深对Flex框架的理解,同时提升处理多媒体应用的能力。
在MP3播放器项目中,ActionScript被用来编写控制播放、暂停、停止、前进、后退等音乐播放功能的逻辑。 3. **MXML**:MXML是Flex中的声明式语言,用于描述用户界面的布局和组件。在MP3播放器的源代码中,你可能会...
MP3播放器是许多Web应用程序中的常见功能,它允许用户在线播放音乐文件。以下是制作MP3播放器的关键知识点: 1. **FlashBuilder 4.0基础**:首先,我们需要熟悉FlashBuilder 4.0的界面和工作流程。这个IDE提供了...
总的来说,这个Flex MP3、MP4播放器项目涉及到了客户端的Flex编程、服务器端的数据交互、媒体处理、用户体验设计等多个方面的知识,是一个综合性的项目,对于熟悉Flex技术的开发者来说,提供了良好的实践平台。
总结,这个“Flex XML MP3播放器”项目展示了如何利用Flex的强大功能和XML的数据灵活性,创建一个自定义的、功能丰富的媒体播放器。通过学习这个项目,开发者不仅可以掌握Flex的基本用法,还能了解到XML数据驱动、...
在本文中,我们将深入探讨如何使用Flex和ActionScript开发一个MP3...通过深入学习Flex和ActionScript,你可以理解并实现这样一个功能完善的MP3播放器,同时也可以进一步提升你的编程技能和对多媒体应用开发的理解。
总的来说,这个Flex版MP3播放器项目涵盖了Flex编程、音频处理、用户界面设计和数据库管理等多个方面的知识点,对于想要深入学习Flex开发和音频应用的开发者来说,这是一个非常有价值的实践案例。通过分析提供的源...
Flex音频播放器是一种基于Adobe Flex技术构建的交互式媒体播放器,它允许用户不仅能够播放音频文件,还提供了丰富的用户体验,如拖放播放位置和调节音量大小的功能。Flex是Adobe开发的一个开源框架,主要用于创建富...
《Mp3播放器-源代码-java-flex》是一个基于Adobe AIR技术的项目,旨在实现一个功能齐全的MP3播放器。这个项目使用了Java语言和Flex框架进行开发,展现了Adobe AIR平台的强大功能和跨平台特性。在Adobe Flash Builder...
Flex播放器是基于Adobe Flex框架开发的多媒体播放应用程序,它允许用户播放...Flex播放器的实现是一个学习和实践ActionScript 3.0以及Flex组件和事件处理的好机会,它能够帮助你理解如何构建一个功能完备的多媒体应用。
【标题】中的“自己写的mp3播放器”指的是一个由个人开发者独立编写的软件应用程序,其主要功能是播放MP3音频文件。这个播放器可能是用编程语言如ActionScript 3(AS3)编写的,这从给定的标签中可以推断出来。...
Flex MP3播放器的核心功能是对MP3文件进行解码和播放。它可能包含一个播放控件界面,如播放/暂停按钮、音量控制、进度条等。Flex使用内置的Sound类来处理音频播放,这个类提供了加载、播放、暂停、停止以及音量控制...