- UID
- 390132
- 在线时间
- 小时
- 积分
- 28274
- 帖子
-
- 离线
- 16587 天
- 注册时间
- 2007-8-23
|
- package
- {
- import flash.display.Sprite;
- import flash.events.Event;
- import flash.events.SampleDataEvent;
- import flash.media.Sound;
- import flash.utils.ByteArray;
- /**
- * @author FLASH023
- * @date 2010-7-31 18:27
- **/
- public class PSound extends Sprite
- {
- private var len:uint;
- private var position:int;
- private var sound:Sound;
- private var soundData:ByteArray;
- public function PSound():void {
- stage?init(null):addEventListener (Event.ADDED_TO_STAGE, init);
- }
- private function init(e:Event ):void {
- var tempsound:RPSound=new RPSound ;
- soundData =new ByteArray ;
- tempsound.extract(soundData,999999999);//获取音乐数据
- len=soundData.length;
- position=int(len/8)-8;
- sound = new Sound ;
- sound.addEventListener(SampleDataEvent.SAMPLE_DATA,onSampledata);
- sound.play();
- //
- removeEventListener(Event.ADDED_TO_STAGE, init);
- }
- private function onSampledata(e:SampleDataEvent):void {
- var _i:int=2048;
- while (_i--) {
- soundData.position=position*8;//重新采样,这里也可以改一改,搞成控制速度,改变采样率等效果
- e.data.writeFloat(soundData.readFloat());
- e.data.writeFloat(soundData.readFloat());
- position--;
- if (position<0) {
- trace("声音播放完了");
- return;
- //position=int(len/8)-8;
- }
- }
- //trace(position);
- }
- }
-
- }
复制代码
音乐也可以是外部加载的,但要获取外部加载的音乐数据,需要用到一个开源的类 MP3FileReferenceLoader |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
评分
-
查看全部评分
|