Форум: "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.49 MB
Время: 0.004 c