AS3版MP3播放器核心
2009-12-01 18:04
197 查看
代码
package {
import flash.media.Sound;
import flash.media.SoundChannel;
import flash.media.SoundLoaderContext;
import flash.media.SoundMixer;
public class MediaPlayerCore {
private var sound:Sound;
private var soundCh:SoundChannel;
private var soundCon:SoundLoaderContext;
private var position:Number;
private var isPlaying:Boolean;
private var isPause:Boolean;
private static var BUFFERTIME:Number = 10000;
public function MediaPlayerCore()
{
isPause = false;
isPlaying = false;
SoundMixer.bufferTime = BUFFERTIME;
}
//创建一个声音对象
//@param url 媒体地址
// @param playNow 是否马上播放,默认为真
public function createSound(url:String,playNow:Boolean = true):void
{
dispose();
sound = new Sound();
sound.load(new URLRequest(url));
sound.addEventListener(IOErrorEvent.IO_ERROR,errorHandler);
if(playNow)
play();
}
//播放
//@param offset 声音从哪开始
public function play(offset:Number = 0):void
{
if(isPause)
soundCh = sound.play(position);
else
soundCh = sound.play(offset);
isPlaying = true;
isPause = false;
}
//暂停
public function pause():void
{
if(isPlaying)
{
position = soundCh.position;
stop();
isPause = true;
}
}
//停止
public function stop():void
{
if(isPlaying)
{
soundCh.stop();
isPlaying = false;
}
}
//播放位置
public function get Position():Number
{
if(soundCh == null)
return 0;
return Math.round(soundCh.position);
}
//声音对象长度
public function get Length():Number
{
if(sound == null)
return 0;
return Math.round(sound.length*sound.bytesTotal/sound.bytesLoaded);
}
//声音对象总共字节
public function get BytesTotal():Number
{
if(sound == null)
return 0;
return sound.bytesTotal;
}
//声音对象加载字节
public function get BytesLoaded():Number
{
if(sound == null)
return 0;
return sound.bytesLoaded;
}
//设置缓冲时间
public function set BufferTime(time:Number):void
{
SoundMixer.bufferTime=time;
}
//中途换歌的时候用的
private function dispose():void
{
if(sound == null)
return ;
if(sound.isBuffering)
sound.close();
stop();
sound = null;
}
// 处理错误用
private function errorHandler(e:IOErrorEvent):void
{
sound.removeEventListener(IOErrorEvent.IO_ERROR,errorHandler);
sound = null;
}
}
}
package {
import flash.media.Sound;
import flash.media.SoundChannel;
import flash.media.SoundLoaderContext;
import flash.media.SoundMixer;
public class MediaPlayerCore {
private var sound:Sound;
private var soundCh:SoundChannel;
private var soundCon:SoundLoaderContext;
private var position:Number;
private var isPlaying:Boolean;
private var isPause:Boolean;
private static var BUFFERTIME:Number = 10000;
public function MediaPlayerCore()
{
isPause = false;
isPlaying = false;
SoundMixer.bufferTime = BUFFERTIME;
}
//创建一个声音对象
//@param url 媒体地址
// @param playNow 是否马上播放,默认为真
public function createSound(url:String,playNow:Boolean = true):void
{
dispose();
sound = new Sound();
sound.load(new URLRequest(url));
sound.addEventListener(IOErrorEvent.IO_ERROR,errorHandler);
if(playNow)
play();
}
//播放
//@param offset 声音从哪开始
public function play(offset:Number = 0):void
{
if(isPause)
soundCh = sound.play(position);
else
soundCh = sound.play(offset);
isPlaying = true;
isPause = false;
}
//暂停
public function pause():void
{
if(isPlaying)
{
position = soundCh.position;
stop();
isPause = true;
}
}
//停止
public function stop():void
{
if(isPlaying)
{
soundCh.stop();
isPlaying = false;
}
}
//播放位置
public function get Position():Number
{
if(soundCh == null)
return 0;
return Math.round(soundCh.position);
}
//声音对象长度
public function get Length():Number
{
if(sound == null)
return 0;
return Math.round(sound.length*sound.bytesTotal/sound.bytesLoaded);
}
//声音对象总共字节
public function get BytesTotal():Number
{
if(sound == null)
return 0;
return sound.bytesTotal;
}
//声音对象加载字节
public function get BytesLoaded():Number
{
if(sound == null)
return 0;
return sound.bytesLoaded;
}
//设置缓冲时间
public function set BufferTime(time:Number):void
{
SoundMixer.bufferTime=time;
}
//中途换歌的时候用的
private function dispose():void
{
if(sound == null)
return ;
if(sound.isBuffering)
sound.close();
stop();
sound = null;
}
// 处理错误用
private function errorHandler(e:IOErrorEvent):void
{
sound.removeEventListener(IOErrorEvent.IO_ERROR,errorHandler);
sound = null;
}
}
}
相关文章推荐
- as3实现调xml文件的MP3播放器
- 初识AS3——简单MP3播放器
- 连连看核心算法(AS3)
- as3 解析xml 核心代码
- AS3 PureMVC之核心层
- 再学AS3(六)——做MP3播放器
- 简单mp3播放器:音频播放核心
- 某银行陕西省分行9地市网络核心改造
- Cocos2D-X的引擎核心—基本框架
- 【SIP基础】SIP协议消息-掌握SIP的核心方法
- 将CentOS 4.7(2.6.9)核心升级为CentOS 5.2(kernel-2.6.18-128.1.6.el5)
- 1、Spring3核心技术-IoC(一)
- Spring核心之BeanFactory 一张图看懂getBean全过程
- AS3里 只能让动画听下来,不能让声音停下来的问题
- 推箱子第一关核心代码
- rsync 的核心算法
- WWW的核心——HTTP协议
- Unity3D界面插件NGUI核心组件说明
- As3 通过绘制多张位图合并成一个超大的位图
- DotNetNuke核心模块介绍