Uygulamayı yeni bir sayfada görmek için tıklayın


Merhaba arkadaşlar ;

Actionscript 3.0 'a geçmek için 10 Sebep - 7 olarak Actionscript 2.0'da olmayan 3.0 ile gelen Ses dosyaların bitlerine erişebilmemizi sağlayan ByteArray Classı ve tasarımsal bir örneğini göstermek istedim.

// Çalacak mp3 dosyasını URLRequest metoduyla çağırıp ses adlı sound objesine yüklüyoruz.

var ses:Sound = new Sound();
var adres:URLRequest = new URLRequest("1.mp3");
ses.load(adres);
var seskanal1:SoundChannel = new SoundChannel();
seskanal1 = ses.play();

// Anasahnede şarkının id3 lerini okuyup sarki_txt içerisine yazan kontrolu ekledik.
ses.addEventListener(Event.COMPLETE,cal);
function cal(e:Event) {
sarki_txt.text = ses.id3.artist + " -" +ses.id3.songName ;
}


// ByteArray classı yardımıyla ses dosyasının kanal yogunluklarını DrawAPI ler yardımıyla mixer_mc isimli bir MovieClip içerisinde çizdirdik. MovieKlip içerisine çizdirmekte fayda var ileride alphası,konumu,rotationıyla daha rahat oynamak için.

var sesByte:ByteArray = new ByteArray();
stage.addEventListener(Event.ENTER_FRAME,eko);
var mixer_mc:MovieClip = new MovieClip()
addChild(mixer_mc)

function eko(e:Event) {
mixer_mc.graphics.clear();
SoundMixer.computeSpectrum(sesByte,true);
mixer_mc.graphics.moveTo(0,200);

//Grafiklerin stilleri mixer_mc.graphics.lineStyle(1,0xffccff) ile belli oluyor.
Burada 1 alpha değeri oxffccff de siyahla öne çıkan sarımsı bir renk.

for (var i:uint=0; i<256; i++) {
mixer_mc.graphics.lineStyle(1,0xffccff);
var yPos:Number = (-sesByte.readFloat() * 150 ) + 100;
mixer_mc.graphics.lineTo(i *2, yPos * 2);
mixer_mc.x = 150
mixer_mc.y = 150
}
}

Yukarıda play butonuna basınca çalan ve stop butonuyla da duran çalışmamın fla sı için tıklayın.

Not : Dışardan stream edilerek çağırılan 1.mp3 dosyasını da swf dosyası ile aynı yerde olduğundan emin olun.Fla direk çalıştırdığınızda mp3 dosyasını bulamazsa çalışmaz.

Faydalı olması dileğiyle...