Arama butonu
Bu konudaki kullanıcılar: 1 misafir
5
Cevap
525
Tıklama
0
Öne Çıkarma
Flash record audio yardım (Ücretli)
C
12 yıl
Onbaşı
Konu Sahibi

Merhaba arkadaşlar actionscript konusunda pek bilgim yok fakat yapmam gereken bir proje için yardımınıza ihtiyacım var. Record audio olayı sesi kaydedip tekrar çalma aslında aşağıdaki kodlarla buton ekleyerek yaptım fakat benim istediğim şu, uygulama açıldığı zaman herhangi bir buton olmayacak sadece kişi konuştuğu zaman kayıt başlayacak ve konuşması bittiğinde kayıt işlemi de bitecek ardından 0,5 saniye veya 1 saniye sonra kendiliğinden bu kayıtı çalacak. Tabii tekrar konuşmaya başladığı zaman yine kayıt yapıp çalacak ayrıca mümkünse bu çalınan sesin tonunun da değişik olmasıni istiyorum yani kullanıcının sesi çalınacağı için aynı olmasını istemiyorum. Arkadaşlar benim için gerçekten çok önemli bir konu yardım edecek varsa ücretiyle beraber pm atabilir mi

 
package {
import flash.display.Sprite;
import flash.media.Microphone;
import flash.media.Sound;
import flash.media.SoundChannel;
import flash.events.MouseEvent;
import flash.events.SampleDataEvent;
import flash.utils.ByteArray;
import flash.events.Event;
import flash.media.SoundMixer;
import flash.media.AudioPlaybackMode;

public class RecTest extends Sprite {

var mic:Microphone;
var s:Sound;
var sc:SoundChannel;
var nowRecording:Boolean = false;
var nowPlaying:Boolean = false;
var recordedBytes:ByteArray;

public function RecTest() {

SoundMixer.audioPlaybackMode = AudioPlaybackMode.MEDIA;

mic = Microphone.getMicrophone();
mic.rate = 44;
mic.gain = 70;
mic.setSilenceLevel(5);

s = new Sound();

recordedBytes = new ByteArray();

recorder.addEventListener(MouseEvent.CLICK, record);
player.addEventListener(MouseEvent.CLICK, playBack);
}



function record(e:MouseEvent) {
if (!nowRecording) {
trace("recording");
recordedBytes.clear();
mic.addEventListener(SampleDataEvent.SAMPLE_DATA, getMicAudio);
nowRecording = true;
} else {
trace("recording stopped");
mic.removeEventListener(SampleDataEvent.SAMPLE_DATA, getMicAudio);
nowRecording = false;
}
}

function getMicAudio(e:SampleDataEvent) {
recordedBytes.writeBytes(e.data);
}

function playBack(e:MouseEvent) {
if (!nowPlaying) {
trace("playing");
recordedBytes.position = 0;
s.addEventListener(SampleDataEvent.SAMPLE_DATA, playAudio);
sc = s.play();
sc.addEventListener(Event.SOUND_COMPLETE, stopPlayback, false, 0, true);
nowPlaying = true;
} else {
sc.stop();
stopPlayback();
}
}

function stopPlayback(e:Event=null) {
trace("playing stopped");
s.removeEventListener(SampleDataEvent.SAMPLE_DATA, playAudio);
nowPlaying = false;
}

function playAudio(e:SampleDataEvent) {
for (var i:int = 0; i < 8092 && recordedBytes.bytesAvailable > 0; i++) {
var sample:Number = recordedBytes.readFloat();
e.data.writeFloat(sample);
e.data.writeFloat(sample);
}
}
}

}