Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Запись с микрофона и воспроизведение записанного (http://www.flasher.ru/forum/showthread.php?t=147720)

ASDAlien 12.12.2010 03:05

Запись с микрофона и воспроизведение записанного
 
Здравствуйте, вобщем хотим сделать приложение, которое будет записывать звук и воспроизводить его в цикле.
нашел похожее приложение, записывает звук в файл, сохраняет на компе,
ломал голову,как сделать без сохранения, нашел движок который вроде конвертирует wav в понятный флэшу звук,ну или мне так кажеца, вобщем скачал исходники, но они все то ли специально "испорчены" толи я криворукий,либо сразу оба варианта, вобщем я так и не смог все ошибки пофиксить, качал отсюда: http://www.libspark.org/svn/as3/sazameki/

http://*********/30123667
на всякий выкладываю, 2 архива, запись и движок который я пытался пофиксить
Помогите пожалуйста,кому не лень и кто любит копаца в подобном - жду Вашей помощи. А реально ли вобще сделать чтоб звук записывался куда-то во временную переменную, пока работает приложение,и его можно было воспроизводить.
Спасибо.

alatar 12.12.2010 12:25

У класса Microphone, есть событие SAMPLE_DATA. Вот по нему и записывайте. В документации даже есть пример.

vapes 12.12.2010 18:55

Делали такое, ща скину пару кусков кода.

Код:

private function record() : void
                {
                        soundBytes = new ByteArray();
                        mic.addEventListener(SampleDataEvent.SAMPLE_DATA, micSampleDataHandler);
                }

private function micSampleDataHandler(event : SampleDataEvent) : void
                {
                        soundBytes.writeBytes(event.data);

                        var t:int = Math.floor(soundBytes.length / 88200/2);
                        var s:int = t%60;
                        time.text = ( t/60<10? "0" : "" ) +  Math.floor(t/60)  + ":" + ( s<10? "0" : "" ) + s;

                }

private function play() : void
                {
                        soundBytes.position = 0;
                        sound = new Sound();
                        sound.addEventListener(SampleDataEvent.SAMPLE_DATA, playbackSampleHandler);
                        sound.play();
                }

private function playbackSampleHandler(event : SampleDataEvent) : void
                {
                        for (var i : int = 0;i < 8192 && soundBytes.bytesAvailable > 0;i++)
                        {
                                var sample : Number = soundBytes.readFloat();
                                event.data.writeFloat(sample);
                                event.data.writeFloat(sample);
                        }
                }

Эти куски кода записывают звук в массив байт и воспроизводят его.


Часовой пояс GMT +4, время: 06:45.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.