مشکل در تبدیل mp3 با as3

ahmad_m1234

Active Member
سلام به دوستان
می خواستم چطوری ضبط با فلش و اکشن اسکریپت و بعدش تبدیل به فرمت mp3 انجام بدهم . طبق سایت tutsplus انجام دادم مشکلی از بابت ضبط ندارم
لینک آموزش :
کد:
http://active.tutsplus.com/tutorials/actionscript/create-a-useful-audio-recorder-app-in-actionscript-3/
اما طبق جستجو که در گوگل انجام دادم برای تبدیل به mp3 از پروژه kiko shine استفاده کنم اما هر کاری می کنم این ارور می دهد
لینک پروژه :
کد:
code.google.com/p/flash-kikko/
پیغام ارور :
کد:
ReferenceError: Error #1065: Variable cmodule.shine::CLibInit is not defined.
و تبدیل نمی شود
الیته یک پروژه در دیدم ولی می خوام مثل اون تبدیل باز همین ارور می دهد
کد:
http://www.jordansthings.com/blog/?p=5

دوستان هر کسی اطلاعاتی در مورد این موضوع داره حتما کمکی بکند . ممنون میشم
 
آخرین ویرایش:

ahmad_m1234

Active Member
حتی فایل swc در همان پوشه پروژه کپی کردم و در تنظیمات اکشن اسکریپت آدرس فایل بهش دادم !
 

++Hadi++

Active Member
دنبال یه متغیری هست که البته یا به خاطر عدم using یه namespace یا ... نمی شناسه...
 

ahmad_m1234

Active Member
ممنون از پاسختون
کدی که از سایت انجام دادم ببینید :
کد:
package 
{
    import flash.display.Sprite;
    import flash.media.Microphone;
    import flash.system.Security;
    import flash.display.*;
    import flash.events.*;
    import flash.text.*;
    import flash.net.*; 
    import flash.media.*;
    import flash.utils.*;
    import org.as3wavsound.WavSound;
    import org.bytearray.micrecorder.*;
    import org.bytearray.micrecorder.events.RecordingEvent;
    import org.bytearray.micrecorder.encoder.WaveEncoder;
    import flash.events.MouseEvent;
    import flash.events.Event;
    import flash.events.ActivityEvent;
    //import fl.transitions.Tween;
    //import fl.transitions.easing.Strong;
    import flash.net.FileReference;
     
    import com.noteflight.standingwave3.elements.*;
    import com.noteflight.standingwave3.filters.*;
    import com.noteflight.standingwave3.formats.*;
    import com.noteflight.standingwave3.generators.*;
    import com.noteflight.standingwave3.modulation.*;
    import com.noteflight.standingwave3.output.*;
    import com.noteflight.standingwave3.performance.*;
    import com.noteflight.standingwave3.sources.*;
    import com.noteflight.standingwave3.utils.*;    
     
    import com.greensock.*;
     
    import fr.kikko.lab.ShineMP3Encoder;
    import cmodule.shine.CLibInit;
 
    public class Main extends Sprite 
    {
        private var mic:Microphone;
        private var waveEncoder:WaveEncoder = new WaveEncoder();
        private var recorder:MicRecorder = new MicRecorder(waveEncoder);
        public var player:AudioPlayer = new AudioPlayer()
        private var recBar:RecBar = new RecBar();
        //private var tween:Tween;
        private var fileReference:FileReference = new FileReference();
        private var mp3encoder:ShineMP3Encoder;
        private var myWavData:ByteArray = new ByteArray()
        private var myWavFile:ByteArray = new ByteArray()
        private var cshine:Object;
 
        public function Main():void
        {
            recButton.stop();
            activity.stop();
 
            mic = Microphone.getMicrophone();
            mic.setSilenceLevel(0);
            mic.gain = 100;
            mic.setLoopBack(true);
            mic.setUseEchoSuppression(true);
            Security.showSettings("2");
 
            addListeners();
        }
 
        private function addListeners():void
        {
            recButton.addEventListener(MouseEvent.MOUSE_UP, startRecording);
            recorder.addEventListener(RecordingEvent.RECORDING  , recording);
            recorder.addEventListener(Event.COMPLETE, recordComplete);
            activity.addEventListener(Event.ENTER_FRAME, updateMeter);
             
            wavbtn.enabled = true;
        }
 
        private function startRecording(e:MouseEvent):void
        {
            if (mic != null)
            {
                recorder.record();
                e.target.gotoAndStop(2);
 
                recButton.removeEventListener(MouseEvent.MOUSE_UP, startRecording);
                recButton.addEventListener(MouseEvent.MOUSE_UP, stopRecording);
 
                addChild(recBar);
 
                //tween = new Tween(recBar,"y",Strong.easeOut, -  recBar.height,0,1,true);
            }
        }
 
        private function stopRecording(e:MouseEvent):void
        {
            recorder.stop();
 
            mic.setLoopBack(false);
            e.target.gotoAndStop(1);
             
            //var src = WaveFile.createSample(recorder.output)
 
            recButton.removeEventListener(MouseEvent.MOUSE_UP, stopRecording);
            recButton.addEventListener(MouseEvent.MOUSE_UP, startRecording);
 
            //tween = new Tween(recBar,"y",Strong.easeOut,0, - recBar.height,1,true);
        }
 
        private function updateMeter(e:Event):void
        {
            activity.gotoAndPlay(100 - mic.activityLevel);
        }
 
        private function recording(e:RecordingEvent):void
        {
            var currentTime:int = Math.floor(e.time / 1000);
 
            recBar.counter.text = String(currentTime);
 
            if (String(currentTime).length == 1)
            {
                recBar.counter.text = "00:0" + currentTime;
            }
            else if (String(currentTime).length == 2)
            {
                recBar.counter.text = "00:" + currentTime;
            }
        }
 
        private function recordComplete(e:Event):void
        {
            var src = WaveFile.createSample(recorder.output)
            var sequence = new ListPerformance()
            sequence.addSourceAt(0, src)
            var ap = new AudioPerformer(sequence, new AudioDescriptor())
            trace("Record Complate ! ")
            renderWav(ap, true)
             
            //WaveFile.writeBytesToWavFile(myWavFile, myWavData, 44100, 2, 16)
            ///makeIntoMp3(myWavFile)
            //var sba:ByteArray = mp3encoder.mp3Data;
            //fileReference.save(sba, "recording.mp3");
        }
        private function renderWav(src, convertToMp3 = false)
        {
            var innerTimer = new Timer(10,0)
            var framesPerChunk:uint = 8192;
             
            innerTimer.addEventListener(TimerEvent.TIMER, handleRenderTimer)
            innerTimer.start()
         
            function handleRenderTimer(e:TimerEvent)
            {
                src.getSample(framesPerChunk).writeWavBytes(myWavD  ata)
                 
                var m = Math.min(src.frameCount, src.position + framesPerChunk)
                var n = Math.max(0, m - src.position)
                 
                finishRender()
                 
 
            }               
            function finishRender()
            {
                innerTimer.stop()
                trace("finishing audio render");
                WaveFile.writeBytesToWavFile(myWavFile, myWavData, 44100, 2, 16)
                makeIntoMp3(myWavFile)
            }               
        }
        private function makeIntoMp3(wav)
        {
            //wav.position = 0
            mp3encoder = new ShineMP3Encoder(wav);
            mp3encoder.addEventListener(Event.COMPLETE, mp3EncodeComplete);
            mp3encoder.addEventListener(ProgressEvent.PROGRESS  , mp3EncodeProgress);
            mp3encoder.addEventListener(ErrorEvent.ERROR, mp3EncodeError);
            mp3encoder.start(); 
                 
        }
            function mp3EncodeProgress(event : ProgressEvent) : void 
            {
                trace(event.bytesLoaded, event.bytesTotal);         
            }
            private function mp3EncodeError(event : ErrorEvent) : void 
            {
                trace("[ERROR] : ", event.text);
            }
            function mp3EncodeComplete(e: Event) : void 
            {
                trace("mp3 encoding complete\n");
                var sba:ByteArray = mp3encoder.mp3Data;
                new FileReference().save(sba, "FlashMicrophoneTest.mp3")            
            }
             
    }
}
میخواستم بگم من اکشن اسکریپت زیاد کار نکردم خواهش می کنم اگر راه حل مشکل را دارین حتما جواب را بدهید . ممنون
 

جدیدترین ارسال ها

بالا