Şimdi Ara

Flash record audio yardım (Ücretli)

Bu Konudaki Kullanıcılar:
1 Misafir - 1 Masaüstü
5 sn
6
Cevap
0
Favori
483
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • 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);
    }
    }
    }

    }







  • Tam emin değilim ama bildiğim kadarıyla Flash sesi direk kayıt edemiyor. Sesi sunucuya gönderir, ses sunucuda red5, electro server, fms gibi bir soket server uygulaması ile kayıt edilir. Daha sonra flash içerisinden çalıştırılır. Ayrıca belki Air ile ses kayıt edilebiliyordur, tabii air masaüstünde ve mobilde çalışır.
  • cevabınız için teşekkür ederim o kadar forum sitesine yazdım, mail yolladım bi tek siz cevap verdiniz. Aslında benim de yapmak istediğim bunu mobil platfrom da çalıştırmak fakat bir türlü çıkamadım işin içinden tam olarak bir yolu yok mudur
  • Mobil platform içinse muhtemelen Air kaydedebiliyordur. Air ile pek çalışmam olmadı genellikle browser için oyun ve uygulama yazıyorum. Ben araştırırım, bir şeyler bulabilirsem haber veririm.
  • Yukarıdaki kodu kullanarak denedim, sanırım istediğin gibi bir şeyin nasıl yapılacağını buldum. Flasharsivi'ndeki ilan da sana ait değil mi? Oradaki mail adresine mail gönderdim :). Biraz fazla mesaj gönderiyorum, haftasonu pek zamanım olmayacak. Yani bu işi bugün bitirdik bitirdik yoksa haftaya kalır. Şimdi senin istediğin şu mu: konuşmaya başlayınca kaydetmesi, konuşma bitince direk kaydettiğini çalmaya başlayacak. Çalma bitince, konuşma başladığında tekrar kaydedecek, sonra yine çalaçak.. böyle devam edecek. Bunun haricinde herhangi bir şey olacak mı, örneğin konuşurken ses seviyesini gösteren bir bar(ses kayıt edicilerde oluyor) ya da başka bir şey. Bana hemen bir dönüş yaparsan muhtemelen 1-2 saate hazırlayıp kodu gönderirim.
  • quote:

    Orijinalden alıntı: MapaCarta

    Yukarıdaki kodu kullanarak denedim, sanırım istediğin gibi bir şeyin nasıl yapılacağını buldum. Flasharsivi'ndeki ilan da sana ait değil mi? Oradaki mail adresine mail gönderdim :). Biraz fazla mesaj gönderiyorum, haftasonu pek zamanım olmayacak. Yani bu işi bugün bitirdik bitirdik yoksa haftaya kalır. Şimdi senin istediğin şu mu: konuşmaya başlayınca kaydetmesi, konuşma bitince direk kaydettiğini çalmaya başlayacak. Çalma bitince, konuşma başladığında tekrar kaydedecek, sonra yine çalaçak.. böyle devam edecek. Bunun haricinde herhangi bir şey olacak mı, örneğin konuşurken ses seviyesini gösteren bir bar(ses kayıt edicilerde oluyor) ya da başka bir şey. Bana hemen bir dönüş yaparsan muhtemelen 1-2 saate hazırlayıp kodu gönderirim.

    yardımlarınız için teşekkür ederim tam istediğim gibi oldu ayrıca mail den geri dönüşünüzü bekliyorum :)




  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.