Сейчас на форуме: tyns777, zombi-vadim (+3 невидимых)

 eXeL@B —› Программирование —› DirectSound
Посл.ответ Сообщение

Ранг: 8.7 (гость)
Активность: 0=0
Статус: Участник

Создано: 16 марта 2008 23:37
· Личное сообщение · #1

Доброго времени суток, ламатели и исследователи! Подскажите, как поставить брэкпоинт в СофтАйсе типа DirectSoundCaptureCreate? Как я понял он эту функцию не распознает... И если кому близка эта тема (DirectSound - захват звука (запись с микрофона)) буду рад загрузится любой инфой в этом направлении...



Ранг: 441.3 (мудрец), 297thx
Активность: 0.410.04
Статус: Участник

Создано: 17 марта 2008 00:49
· Личное сообщение · #2

Попробуй в winice.dat вписать строку EXP=C:\WINDOWS\system32\dsound.dll



Ранг: 163.7 (ветеран)
Активность: 0.070
Статус: Участник

Создано: 17 марта 2008 07:04
· Личное сообщение · #3

Напямую вряд ли, тк функции DX не экспортируются. Можно получить поинтер на интерфейс и посмотреть адрес метода в VTable. Либо потрейсив, либо (лучше) в IDA + PDB.



Ранг: 8.7 (гость)
Активность: 0=0
Статус: Участник

Создано: 17 марта 2008 09:27
· Личное сообщение · #4

ок! спасибо, буду пробовать... А с исходниками звукозаписи в инете вакуум... Зато программ на кождом углу и все деньги зарабатывают... .IF eax==IDC_RECORD_BEG

invoke mciExecute, ADDR szOpenNew ; Open device ready for recording

.IF !eax
return TRUE
.ENDIF

invoke mciExecute, ADDR szRecord ; "record mysound"

invoke SetButtons, hWnd, FALSE, TRUE, FALSE,FALSE,FALSE, IDC_RECORD_END
mov bRecording, TRUE

return TRUE

.ELSEIF eax==IDC_RECORD_END ; Stop, save & close

invoke mciExecute, ADDR szStop ; "stop mysound"

invoke GetSaveFileName, ADDR ofn ; Bring up Save file dialog
mov szSave+13,0 ; Possibly a previous recording, so zero truncate
invoke lstrcat, ADDR szSave, ofn.lpstrFile ; Concatenate name to buffer
invoke mciExecute, ADDR szSave ; "save mysound 'filename' "
invoke mciExecute, ADDR szClose ; "close mysound"

invoke SetButtons, hWnd, TRUE, FALSE, TRUE, FALSE, FALSE, IDC_PLAY_BEG

mov bRecording, FALSE
mov bRecorded, TRUE

return TRUE

.ELSEIF eax==IDC_PLAY_BEG ; Open waveform audio and play

.IF !bRecorded

invoke GetOpenFileName, ADDR ofn ; Select from previous recordings

.ENDIF

mov szOpen+5,0 ; Truncate back to "open "
invoke lstrcat, ADDR szOpen, ofn.lpstrFile ; Concatenate name to "open "
invoke lstrcat, ADDR szOpen, ADDR szAlias ; "open 'filename' alias mysound"
invoke mciExecute, ADDR szOpen ; Execute "open" command

.IF !eax
return TRUE
.ENDIF

invoke mciExecute, ADDR szPlay ; "play mysound"

invoke SetButtons, hWnd, FALSE, FALSE, FALSE, TRUE, TRUE, IDC_PLAY_END

mov bPlaying, TRUE

return TRUE


Может кто поможет, крутил этот код под отладчиком и так и так, непонятно куда буферизируется звук... точнее понятно, в память... я его там даже вижу под отладчиком... тишина - это байты 80 80 80 80 ... видеть мало как получить к ним доступ... функция mciExecute - вообще вещь оригинальнейшая... вопервых команды получает в виде строк символов (в первый раз такое вижу)... а во вторых не получает ни каких хендлов на буфер в памяти... сначало тупо нужно послать команду "open", потом "record", потом "save"... все файл в формате wav записан... это конечно здорово, но это связывает руки...



Ранг: 74.1 (постоянный), 34thx
Активность: 0.030
Статус: Участник

Создано: 17 марта 2008 10:46
· Личное сообщение · #5

hellobody
На васме лежит риппер музыки из прог на дсаунд. с исходниками.

wasm.ru/baixado.php?mode=tool&id=397



Ранг: 8.7 (гость)
Активность: 0=0
Статус: Участник

Создано: 17 марта 2008 22:38
· Личное сообщение · #6

Спасибо, буду разбираться...



Ранг: 8.7 (гость)
Активность: 0=0
Статус: Участник

Создано: 17 марта 2008 22:41
· Личное сообщение · #7

Тема - актуальна, разыскиваю исходники программ звукозаписи...



Ранг: 163.7 (ветеран)
Активность: 0.070
Статус: Участник

Создано: 18 марта 2008 04:54
· Личное сообщение · #8

Где искал? Вот какой-то сэмпл из DX7 SDK, в новых тоже должно быть...
CaptureSound illustrates how to capture a wave file using DirectSound.


c2ad_17.03.2008_CRACKLAB.rU.tgz - capturesound.zip



Ранг: 191.8 (ветеран), 46thx
Активность: 0.170
Статус: Участник

Создано: 18 марта 2008 07:09
· Личное сообщение · #9

Чаще про DirectSound почему-то пишут в книжках для геймеров по DX.
Можно почитать у Фроловых про мультимедиа
www.frolov-lib.ru/books/bsp/v15/index.html
ну и до кучи по видео
directshow.wonderu.com/samples



Ранг: 8.7 (гость)
Активность: 0=0
Статус: Участник

Создано: 18 марта 2008 13:15
· Личное сообщение · #10

Искал в интернете... DX7 SDK у меня нет, надо скачать... Вообще темой звукозаписи занимаюсь уже больше 6 мес... Собрал себе еще один старенький комп для эксперементов... Старую звуковуху нашел... Думал что под Досом с ней можно работать без драйвера, просто обращаясь к портам 220h... Оказалось нельзя... Потом дрова под Дос накопал для нее все заработало... В 16 разрядном режиме процессора, писал с микрофона 8-ми битный звук, правда не более 64K в обьеме... Это меня сильно расстраивало... Начал копать как перевести мой старенький 233 Mhz в защищенный 32-битный режим... Разобраться с Дос расширителями так и не смог, пришлось ручками создать таблицы дескрипторов, делал по каким то туториалам с wasma... Получилось, писал звук тупо в 4 Гб адрессное пространство, коечто попадало в оперативную память, кое что в память видеокарты (экран, время от времени, во время recorda заполнялся символами, соответствующими байтам, которые генерировала звуковая карта) ... Но это все фигня... Дос - мертвая операционная система и программить под неё не перспективно... Под видной все стало... Писал драйвер нулевого кольца, что бы получить доступ к портам ввода-вывода... Познакомился с BSOD (Blue Screen of Death) ... Вобщем драйвер получился, тестил на бипере, работает...
На компе на котором стоит винда (мой второй компьютер) звуковая карта С-Media встроенная - какие у нее порты ввода вывода - одному Богу извесно... Инфы как программить на ассемблере на низком уровне современную звуковуху нет вообще... Я так понял это извесно только самим производителям звуковых карт...
Вот сейчас ищу современные высокоуровневые способы работы со звуком...
За ссылку на книгу Фроловых спасибо! Начал читать...



Ранг: 8.7 (гость)
Активность: 0=0
Статус: Участник

Создано: 18 марта 2008 14:33
· Личное сообщение · #11

Кстати, прописывать пробовал EXP=\SystemRoot\System32\dsound.dll, вроде ставится бряк, но не срабатывает и при выводе листа бряков обозначан не как название функции, а как адрес... наверное способ не рабочий...


 eXeL@B —› Программирование —› DirectSound
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати