ahmad_m1234
جمعه 09 تیر 1391, 21:24 عصر
سلام به دوستان
 می خواستم چطوری ضبط با فلش و اکشن اسکریپت و بعدش تبدیل به فرمت 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
دوستان هر کسی اطلاعاتی در مورد این موضوع داره حتما کمکی بکند . ممنون میشم
Microname
دوشنبه 12 تیر 1391, 01:14 صبح
با چه نسخه ای(فلش) کامپایل می کنید؟
از کدی هم که استفاده میکنید در اینجا قرار بدید ، مخصوصا اون قسمت ClibInit
ahmad_m1234
دوشنبه 12 تیر 1391, 02:37 صبح
ممنون از پاسختون
من از نسخه flash c5.5 استفاده می کنم . 
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")			
			}
			
	}
}
من اکشن اسکریپت کار نکردم .
خوشحال میشم اگه امکانش هست بگید باید چکار کنم . ممنون
ahmad_m1234
پنج شنبه 15 تیر 1391, 23:23 عصر
ببخشید دوستان کسی نمی خواهد جواب ما رو بده . ممنون میشم راه حل های خودتون ارسال کنید
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.