<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" initialize="init()">
<mx:Script>
<![CDATA[
import mx.rpc.events.AbstractEvent;
import mx.controls.Alert;
import mx.events.SliderEvent;
import flash.media.*;
private var myTimer:Timer=new Timer(5,0);
private var mySong:Sound;
private var ss:SoundChannel;
private var location:Number;
//设定是否处于暂停状态
private var tag:Boolean=false;
private var playTag:Boolean=false;
//初始化数据
private function init():void
{
mlist.dataProvider=musicList.item;
}
private function playSound():void
{
if(playTag)ss.stop();
var playItem:String="http://team.11138.net/web/nancy/wzqskfj.mp3";
message.text="正在播放:"+mlist.selectedItem.toString();
//如果不是暂停
if(!tag)
{
var request:URLRequest=new URLRequest(playItem);
mySong=new Sound();
mySong.load(request);
ss=mySong.play();
//将播放标记设置为true,表示正在播放
playTag=true;
}else
{
ss=mySong.play(location);
playTag=true;
}
//在触发器运行时,一直在广播TimerEvent.TiMER,该事件定义处理方法,使滑块移动
myTimer.addEventListener(TimerEvent.TIMER,sliderShow);
//启动触发器
ss.addEventListener(Event.SOUND_COMPLETE,thisComplete);
myTimer.start();
}
//处理滑块时间问题
private function sliderShow(event:TimerEvent):void
{
//当前播放的位置
var position:Number=ss.position/mySong.length;
//定义滑块的数值,当前播放的字节数/总字节数
playProcess.setProgress(position,playProcess.maximum);
playProcess.label=numberFormatter.format(position*100).toString()+"%";
if(position>0.99)playProcess.label="100%";
}
//根据是否循环选项确定在所有播放曲目完成后是否循环播放
private function thisComplete(event:Event):void
{
var index:int =mlist.selectedIndex+1;
if(go.selected)
{
mlist.selectedIndex=index;
var arr:Array=musicList.item;
//播放
playSound();
//如果到达最后一首
if(index==arr.length)
{
//如果选择了重复播放
if(re.selected)
{
mlist.selectedIndex=0;
}
}
}
}
//停止播放音乐
private function stopSound():void
{
ss.stop();
}
//音量控制
private function changeVol():void
{
var transform:SoundTransform=ss.soundTransform;
transform.volume=myVol.value;
ss.soundTransform=transform;
}
]]>
</mx:Script>
<!--音乐列表数据-->
<mx:Model id="musicList" source="music.xml"></mx:Model>
<!--格式化数据-->
<mx:NumberFormatter id="numberFormatter"
precision="2"
rounding="up" />
<mx:Panel x="102" y="20" width="348" height="368" layout="absolute" title="mp3播放器">
<mx:ProgressBar x="10" y="33" id="playProcess" label="[0,100%]" minimum="0" maximum="1" labelPlacement="right" indeterminate="false" enabled="true" mode="manual" themeColor="#F20D7A"/>
<mx:Label x="10" y="10" text="Label" width="200" id="message"/>
<mx:Button x="10" y="69" label="play" click="playSound()"/>
<mx:Button x="83" y="69" label="stop" click="stopSound()"/>
<mx:Button x="156" y="69" label="Button"/>
<mx:Button x="229" y="69" label="Button"/>
<mx:List x="10" y="99" width="211" height="219" id="mlist"></mx:List>
<mx:CheckBox x="229" y="248" label="连续播放" id="go"/>
<mx:CheckBox x="229" y="278" label="循环播放" id="re"/>
<mx:VSlider x="245" y="99" height="141" maximum="1" minimum="0" id="myVol" mouseUp="changeVol()" labels="音量"/>
</mx:Panel>
</mx:Application>
分享到:
相关推荐
FLEX播放器 flex 开发AIR及Flex之mp3播放器教程 FLEX播放器 flex 开发AIR及Flex之mp3播放器教程
flex 视频播放器,应用videodisplay 能够定位播放位置,可控工具栏样式,与js数据交互
flex MP3播放器,具有歌词同步、波形显示。 本人花了3天时间做的,供大家参考。
Flex制作播放器实例一共四个实例,由浅入深。天涯精心总结。完整版的实例。flash播放器。都带源文件
实现播放,停止,进度条,音量,播放模式等控制
非常不错的Flex播放器,利用microphone制作,不用经过服务器。
flex 4.5 播放器简单应用代码,与js,swf交互使用,获取播放位置,适合初学者简单参考
flex 音频播放器,可拖放播放位置和调节声音大小,经典奉献。
一个自制的Flex音乐播放器,附带播放歌词功能,更替背景图片以及播放音乐的相关功能,需要电脑安装了AIR才能安装air文件的程序。 安装后main.exe为程序的播放执行文件 打开srcview\source文件夹下的main.mxml.html...
Flex FLV播放器 + 带缩略图的图片切换广告 例子:http://www.haoliv.com 右边的播放器
一个用flex编写的播放器源码,在flex Builder下运行
一款用flex做的音乐播放器,对于flex学习者很有用
NULL 博文链接:https://zhongrenmeng.iteye.com/blog/1454995
Flex 超炫 MP3播放器 Flex 超炫 MP3播放器 Flex 超炫 MP3播放器
flex视频播放器
FLV视频播放器,可完全用脚本控制的flex,flash播放器源码,flash加载方式采用swfobject,flex builder可直接导入
花了一个下午写了个播放器 播放器的基本功能都有了,样式不是太好。 以后会扩展
直接上代码,在Flash Builder 4中新建 FLEX项目,复制代码可以可以直接运行 需要将 file = "D:\\voice\\3791.MP3"; 改为自己的路径 以后还准备增加流式播放!
flex音乐播放器学源码,供大家一起共同参考学习。