简单的 MP3
前天 做了一个MP3,当时之实现了 ,播放 暂停和 停止,今天 又修改了一下;实现了 简单的 下一曲,上一曲,歌曲名字,和歌手的图片;
package
{
import flash.display.MovieClip;
import fl.controls.*;
import flash.media.Sound;
import flash.net.URLRequest;
import flash.media.SoundChannel;
import flash.events.MouseEvent;
import flash.media.SoundTransform;
import fl.events.SliderEvent;
import flash.net.URLLoader;
import flash.events.Event;
import flash.text.TextField;
import flash.display.Loader;
public class SoundMain extends MovieClip
{
//定义四个按钮,分别是:播放/暂停、停止、上一曲、下一曲
private var play_btn:Button=new Button();
private var stop_btn:Button=new Button();
private var up_btn:Button=new Button();
private var down_btn:Button=new Button();
//定义一个slider组件,实现简单地调节声音的大小;
private var controlVolume:Slider=new Slider();
//定义一个URLLoader,加载XML
private var ld_xml:URLLoader=new URLLoader();
//定义一个URLLoader,加载图片
private var ld_pictures:Loader=new Loader();
//定义一个XML,获取,加载进来的Xml的内容
private var xml:XML;
//定义三个类,分别是;声音,声音控制,声音调节
private var sound:Sound;
private var soundchannel:SoundChannel=new SoundChannel();
private var soundtransform:SoundTransform=new SoundTransform();
//定义一个数;初始化声音播放的位置为0
private var position:Number = 0;
//文本,显示歌曲名称;
private var txt:TextField=new TextField();
//控制歌的次序
private var songTimes:int = 0;
public function SoundMain()
{
//初始化,设置按钮
set_allBtn();
//初始化,设置文本;
set_txt();
//加载XML
ld_xml.load(new URLRequest('SXML.xml'));
//添加完成事件
ld_xml.addEventListener(Event.COMPLETE,onCompleteHandler);
//初始化声音的大小
controlVolume.value = 5;
soundtransform.volume = controlVolume.value * 0.1;
soundchannel.soundTransform = soundtransform;
//给slider加事件
controlVolume.addEventListener(SliderEvent.CHANGE,onControlVolume);
//设置加载图片的属性,并添加到舞台上;;
ld_pictures.x = 120;
addChild(ld_pictures);
}
//设置按钮
private function set_allBtn():void
{
//对四个按钮的 设置
play_btn.label = '播放';
play_btn.x = 10;
play_btn.y = 260;
play_btn.width = 40;
addChild(play_btn);
stop_btn.label = '停止';
stop_btn.x = 90;
stop_btn.y = 260;
stop_btn.width = 40;
addChild(stop_btn);
up_btn.label = '上一曲';
up_btn.x = 140;
up_btn.y = 260;
up_btn.width = 50;
addChild(up_btn);
down_btn.label = '下一曲';
down_btn.x = 200;
down_btn.y = 260;
down_btn.width = 50;
addChild(down_btn);
//对slider的设置
controlVolume.x = 270;
controlVolume.y = 270;
addChild(controlVolume);
//给三个按钮 加上单击事件
play_btn.addEventListener(MouseEvent.CLICK,onPlayHandler);
stop_btn.addEventListener(MouseEvent.CLICK,onStopHandler);
up_btn.addEventListener(MouseEvent.CLICK,onUpHandler);
down_btn.addEventListener(MouseEvent.CLICK,onDownHandler);
}
//设置文本
private function set_txt():void
{
txt.x = 120;
txt.y = 220;
//txt.background=true;
txt.wordWrap = true;
txt.width = 150;
txt.height = 40;
addChild(txt);
}
private function onCompleteHandler(e:Event):void
{
xml = new XML(ld_xml.data);
sound=new Sound();
sound.load(new URLRequest(xml.route[songTimes]));
txt.text = xml.titles[songTimes];
ld_pictures.load(new URLRequest(xml.pictures[songTimes]));
}
private function onPlayHandler(e:MouseEvent):void
{
if (play_btn.label == '播放')
{
soundchannel = sound.play(position);
play_btn.label = '暂停';
}
else if (play_btn.label=='暂停')
{
position = soundchannel.position;
soundchannel.stop();
play_btn.label = '播放';
}
}
private function onDownHandler(e:MouseEvent):void
{
position = 0;
songTimes++;
if (songTimes<=xml.route.length()-1)
{
soundchannel.stop();
sound=new Sound();
sound.load(new URLRequest(xml.route[songTimes]));
txt.text = xml.titles[songTimes];
ld_pictures.load(new URLRequest(xml.pictures[songTimes]));
soundchannel = sound.play(position);
position = 0;
play_btn.label = '暂停';
}
else if (songTimes>xml.route.length()-1)
{
songTimes = 0;
soundchannel.stop();
sound=new Sound();
sound.load(new URLRequest(xml.route[songTimes]));
txt.text = xml.titles[songTimes];
ld_pictures.load(new URLRequest(xml.pictures[songTimes]));
soundchannel = sound.play(position);
position = 0;
play_btn.label = '暂停';
}
}
private function onUpHandler(e:MouseEvent):void
{
position = 0;
songTimes--;
if (songTimes<0)
{
songTimes = xml.route.length() - 1;
soundchannel.stop();
sound=new Sound();
sound.load(new URLRequest(xml.route[songTimes]));
txt.text = xml.titles[songTimes];
ld_pictures.load(new URLRequest(xml.pictures[songTimes]));
soundchannel = sound.play(position);
position = 0;
play_btn.label = '暂停';
}
else if (songTimes>=0)
{
soundchannel.stop();
sound=new Sound();
sound.load(new URLRequest(xml.route[songTimes]));
txt.text = xml.titles[songTimes];
ld_pictures.load(new URLRequest(xml.pictures[songTimes]));
soundchannel = sound.play(position);
position = 0;
play_btn.label = '暂停';
}
}
private function onStopHandler(e:MouseEvent):void
{
trace(555);
position = 0;
soundchannel.stop();
play_btn.label = '播放';
}
private function onControlVolume(e:SliderEvent):void
{
soundtransform.volume = (e.target.value)*0.1;
soundchannel.soundTransform = soundtransform;
}
}
}
浙公网安备 33010602011771号