Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2009.07.12;
Скачать: [xml.tar.bz2];

Вниз

SoundRecorder A.Galilov   Найти похожие ветки 

 
Боб   (2007-11-14 19:58) [0]

Здравствуйте ВСЕ
В конфе, да и не только здесь, есть много ссылок на статью
А. Галилова (A.Galilov) на предмет аудеорекордера на API.
Классная статья- все разжевано и готовый пример.
Скачал, скомпилил (D7, w2K) - все ОК. На другом компе
(wXP) тоже работает. А на моем - нет !? (wXP, sound Card - psc703 (AGP); драйвера качал с ОФФ сайта для wXP). Все программы работают нормально; даже все игрушки. Когда запускаю программу на своем компе - она делает вид, что работает, но на самом деле процедура, получающая управление по заполнению приемного буфера получает это самое управление практически сразу по предоставлению очередного буфера; т.е. недожидаясь его заполнения. (Это я так думаю).  Если есть идеи по поводу преодоления этих
"препятствий" - буду очень благодарен.
Боб.
P.S.
Рекордер от DEAudio(C) на этом компе - без проблем, но уж очень хочется тот, который от A.Galilov. -(


 
Dimaxx ©   (2007-11-15 01:55) [1]


> sound Card - psc703 (AGP)

Ты ничего не перепутал?


 
Bob   (2007-11-15 05:37) [2]

> Dimaxx ©  
Конечно перепутал %(
Конечно PCI - извиняюсь. (Просто у меня еще и видяшкой проблемы - вот спорол)


 
Сергей М. ©   (2007-11-15 13:30) [3]


> Рекордер от DEAudio(C) на этом компе - без проблем


Значит у тебя ошибка в пргограмме.


> уж очень хочется тот, который от A.Galilov


Я не знаю, кто такой Галилов и чем уж так крут его пример, но внутри DEAudio те же самые обращения к тем же самым API-функциям, и, поскольку DEAudio заведомо работает, следует очевидно сверить два кода - код от Галилова и код из DEAudio на предмет различий.


 
Bob   (2007-11-15 13:58) [4]

>Сергей М. ©  
Наверное так и придется сделать. Хотя непонятно: одна и таже
откомпиленная прога на одном компе работает, а на другом - нет.
Может всетаки дело в карточке (или дрв. к ней)?
А у Галилова ничего крутого нет. Наоборот - все очень просто.
Кстати DEAudio - классная вещь, но по событию заполнения буфера
чтения (от микрофона) этот буфер сначала отдается всем "пользователям"
(Осцилограф, кодер/декодер, поток записи на диск) и только потом
в мою процедуру, когда с данными уже ничего не сделать (например,
отфильтровать или тормознуть запись, типа как в диктофоне).
А может я что-то не так понимаю...
Спасибо. Буду дерзать дальше %)


 
Сергей М. ©   (2007-11-15 14:23) [5]


> может я что-то не так понимаю


Конечно не понимаешь)


> с данными уже ничего не сделать


Как это нельзя ? А нафига, спрашивается, тебе эти данные переданы ?


 
Боб   (2007-11-15 20:14) [6]

> Сергей М. ©   (15.11.07 14:23) [5]
Вот и я думаю : нафига? (если сначала передаются в конверторы,
а потом - мне ?  но это на самом деле ТАК. Ну я даже нашел это
место в компонентах - ну не хочется мне их "ломать" - ну правда
хорошая вещь. А если я не прав - ну ткни пальцем дурака...
-(


 
Боб   (2007-11-15 20:19) [7]

Я извиняюсь : очень плохая связь. Сижу на "времени"
+2 часа разница во времени (у нас сейчас 22:20)
-)))


 
Боб   (2007-11-15 20:36) [8]

> Сергей М. ©  
Прошу прощения : кончается время. Завтра, если у Вас еще не пропадет
интерес, приведу кусочек кода из DEAudio.
Спасибо.


 
Bob   (2007-11-16 06:46) [9]

> Сергей М. ©
Это вызывается по заполнении буфера.

procedure TdeCustomAudioIn.DoAudioRecorde(AudioData:Pointer;
                                                              AudioDataSize: Integer);
begin
 FLastAudioRecorded := AudioData;
 FLastAudioSize := AudioDataSize;
 FAudioSubjectImplementor.NotifyObservers(IdeAudioSubject(Self), AudioData, AudioDataSize);

// это вызов моей процедуры обработки, а "поезд уже ушел" -(

 if Assigned(FOnAudioRecorded) then
   OnAudioRecorded(Self, AudioData, AudioDataSize);
end;

Можно, конечно, переставить вызов выше, но это уже как бы лопатой...
И еще непонятно : а как пропустить запись этого буфера в файл ?


 
Сергей М. ©   (2007-11-16 09:28) [10]


> сначала передаются в конверторы


В какие такие "конверторы" ?


> "поезд уже ушел"


Куда ушел ?)

Ты получил очередную порцию AudioData размером AudioDataSize, делай с ней что хочешь ! Чего ж тебе еще надобно, старче ?)


> как пропустить запись этого буфера в файл


В какой еще файл ?
В приведенном фрагменте кода нет ни намека на какие-то файловые операции.


 
Bob   (2007-11-16 13:19) [11]

> Сергей М. ©  
Я может быть изначально не совсем четко изложил задачу : мне нужно
получить звук (или другой сигнал) с микрофонного входа звуковой карты,
обработать его (например, усилить или сгладить или пропустить через
полосовой фильтр и т.п.), принять решение о необходимости записать этот
буфер в файл или пропустить. Т.е. речь идет не просто о Компонентах, а о
конкретном их применении - ввод сигнала, обработка в квази-реальном времени и запись в файл в каком-либо формате. Пусть это будет "диктофон".
Сделать это я пытаюсь на основе Demo "Recorder".

В привенном ранее фрагменте буфер AudioData "отдается" осциллографу,
конвертору (напр. в МР3); сконвертированный блок отдается на
запись в файл. Последней получает буфер моя процедура.
Ну обработал я его, а исходный уже превратился в МР3 и записался на диск.
Вот это и есть "поед ушел".
Спасибо за отклик.


 
Сергей М. ©   (2007-11-16 13:49) [12]


> мне нужно
> получить звук (или другой сигнал) с микрофонного входа звуковой
> карты,
> обработать его (например, усилить или сгладить или пропустить
> через
> полосовой фильтр и т.п.), принять решение о необходимости
> записать этот
> буфер в файл или пропустить


На здоровье, ничто этому не мешает.


> В привенном ранее фрагменте буфер AudioData "отдается" осциллографу,
>
> конвертору (напр. в МР3); сконвертированный блок отдается
> на
> запись в файл


В приведенном фрагменте нет никаких "осциллографов", "конвертеров", "записывалок на диск".


 
Сергей М. ©   (2007-11-16 13:50) [13]


> или пропустить


Куда пропустить-то ?


 
Боб   (2007-11-16 21:28) [14]

Куда пропустить-то ?
Ну не записывать в файл, если сигнал слабый.
Пардон - Сергей : я что-то невнятно об"ясняюсь ?
Ну если не хочешь - ну не надо ерничать. У меня и без того проблем хватает.
А если вспомнить с чего ветка начиналась - так вообще...
Спасибо. Вопрос закрываю.
Да, еще одна просьба : если встретите где-нибудь в какой-нибудь
конфе вопрос от имени "Боб" -  не отвечайте ничего...
Спасибо за внимание.


 
Сергей С.   (2007-11-16 21:35) [15]


> Ну не записывать в файл, если сигнал слабый


Ну и не записывай !

Тебя кто-то заставляет это делать ?)


> я что-то невнятно об"ясняюсь ?


Если ты кроме компонента аудиозахвата понахреначил на форму еще какие-то компоненты от деАудио, то так и скажи).. и не надо "ерничать", ибо эти компоненты тебе нафих не нужны для решения задачи.

А деАудио я рекомендовал тебе для изучения ЛОГИКИ, а не для слепого передира демо-примеров.

Засим откланиваюсь.



Страницы: 1 вся ветка

Форум: "Media";
Текущий архив: 2009.07.12;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.004 c
2-1242803644
Pavlov
2009-05-20 11:14
2009.07.12
выделить программно позицию в TreeView по id этой позиции


3-1223466967
opoloxai
2008-10-08 15:56
2009.07.12
DataSet в DataSet


15-1242065192
Cyrax
2009-05-11 22:06
2009.07.12
Статус эконом-класса - присваивается как-то официально или...


2-1242878656
Виталий_______
2009-05-21 08:04
2009.07.12
Освобождение памяти TList


3-1223555595
abhtr
2008-10-09 16:33
2009.07.12
Нужен файл dbExpress.pas





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский