以前,在Flex2刚发布时,有人说AS3.0能够编辑声音,方法是用ByteArray与SoundMixer。但被证明这是假的,SoundMixer能读不能写!
但现在新的方法出现了!把声音用SWF的格式写到ByteArray里,再用Loader读进来,最后把它变为Sound!
实现这个的是Andre Michelle 与 Joa Ebert 开发的popforge Project。
Sample:
package {
import de.popforge.audio.output.Audio;
import de.popforge.audio.output.AudioBuffer;
import de.popforge.audio.output.Sample;
import de.popforge.audio.output.SoundFactory;
import flash.display.Sprite;
import flash.events.Event;
import flash.utils.describeType;
import flash.media.Sound;
public class popforge extends Sprite
{
public function popforge()
{
var samples:Array = [];
var phase:Number = 2;
var freq:Number = 0.12
for( var i: int = 0 ; i < 44100*3 ; i++ ) {
//-- create an amplitude [-1,1]
var amplitude:Number = Math.sin( phase * Math.PI * 2 );
//-- create a sample
var sample:Sample = new Sample( amplitude, amplitude );
//-- push in array
samples.push( sample );
//-- increase phase
phase += freq / Audio.RATE44100;
}
SoundFactory.fromArray(samples,
Audio.MONO,
Audio.BIT16,
Audio.RATE44100,
func);
}
private function func(event:Sound):void {
event.play();
}
}
}
![[Google]](http://www.google.com/logos/Logo_25wht.gif)
![[Synchronous Space]](http://weihe924stephen.googlepages.com/syncspace-banner.jpg)
![[Creative Commons License]](http://i.creativecommons.org/l/by-nc-sa/3.0/88x31.png)
![[Add to Google]](http://buttons.googlesyndication.com/fusion/add.gif)
![[Aggregated by MXNA]](http://weblogs.macromedia.com/mxna/images/mxna88x31.gif)
![[Flex.org]](http://www.flex.org/images/flexorg.gif)
![Validate my Atom 1.0 feed [Valid Atom 1.0]](http://validator.w3.org/feed/images/valid-atom.png)
![Validate my RSS feed [Valid RSS]](http://resource.googlecode.com/files/valid-rss.png)
![[I heart FeedBurner]](http://www.feedburner.com/fb/images/pub/i_heart_fb.gif)
没有评论:
发表评论