واضح آرشیو وب فارسی:سایت ریسک: کار با متد SoundMixer.computeSpectrum arjmand 200 29 تير 1388, 22:42با سلام خدمت دوستان یه مدتی سخت درگیر ساخت یک mp3 پلیر با فلش شدم من میخواستم برای بهتر شدن این کار از متد جدیدی که در اکشن اسکریپت 3 در فلش برای کلاس صدا گذاشته شده یک (visualization) جالب برای صدا بزارم البته اینکارو هم کردم ولی از دوستایی که زیاد با این متد کار کردن و هم چنین کلاس ByteArray میخواستم یه راهنمایی بگیرم بد نیست این نمونه ها رو هم ببینین : متاسفانه اینم نمونه ایی که من با این متد ساختم :lol: وقتی از حالت فشرده خارج کردین مطمئن باشین یه فایل mp3 با نام col در کنار فایل swf باشه apolon_021 30 تير 1388, 00:14سلام ، من یه موزیک پلیر نوشتم و از کلاس Spectrum استفاده کردم که شما هم از اون میتونید به راحتی استفاده کنید. package { import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.Sprite; import flash.events.Event; import flash.events.MouseEvent; import flash.filters.DropShadowFilter; import flash.geom.Rectangle; import flash.media.SoundMixer; import flash.utils.ByteArray; import flash.display.Stage; public class Spectrum extends Sprite { private var _spectrumBMP:BitmapData; private var _spectrumWidth:Number = 900; public function Spectrum() { // Bitmap to draw spectrum data in _spectrumBMP = new BitmapData(_spectrumWidth, 50, true, 0x00000000);//width, height, transp, fill var bitmap:Bitmap = new Bitmap(_spectrumBMP); addChild(bitmap); } public function update():void { // Get spectrum data var spectrum:ByteArray = new ByteArray(); SoundMixer.computeSpectrum(spectrum); // Draw to bitmap _spectrumBMP.fillRect(_spectrumBMP.rect, 0x00000000);// spectrum rectangle _spectrumBMP.fillRect(new Rectangle(0, 0, _spectrumWidth, 0), 0x000000000);//spectrum background for (var i:int=0; i<_spectrumWidth; i++) { _spectrumBMP.setPixel32(i, 10 + spectrum.readFloat() * 20, 0xAAAAAAAA);//spectrum color } } } } arjmand 200 30 تير 1388, 00:42دوست عزیز ممنون از سورس کارتون ولی من نمونه کار نمیخوام میخواستم در باره این متد و کلاس ByteArray یه چیزایی بدونم اینم کدیه که میخوام تو mp3 خودم تکمیلش کنم : var bytes:ByteArray; var CHANNEL_LENGTH:uint = 256; var s:Sound = new Sound(new URLRequest("col.mp3")); s.play(); bytes = new ByteArray(); addEventListener( Event.ENTER_FRAME, onEnterFrame ); function onEnterFrame( event: Event ):void { SoundMixer.computeSpectrum(bytes, true, 0); var smooth:Number; var value:Number; graphics.clear(); var xVal:Number = (stage.stageHeight / 2); var spacing:Number = (stage.stageWidth / CHANNEL_LENGTH); var color:Number; for (var i:int = 0; i < CHANNEL_LENGTH; i++) { value = bytes.readFloat(); value = (value * CHANNEL_LENGTH) << 0; color = 0xFF0000|(value << 8); graphics.lineStyle(1, color, 1); graphics.beginFill(color); graphics.drawCircle(i * spacing, xVal, value / 8); } } color = 0xFF0000|(value << 8); البته در مورد این قسمت یه توضیحی بدم که این کد رنج رنگهای 8 بیتی از رنگ 0xFF0000 برمیگردونه و برای دونستن این رنج میتونین از این کد استفاده کنین trace(color.toString(16)) (اقا این ادیتور انجمن فکر کنم مشکل داره اگه درست میشد از دست این ادیتها راحت میشدیم)
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 291]