|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
19.03.2017, 15:40 | #1 |
Форумчанин
Регистрация: 13.02.2012
Сообщений: 867
|
Запись звука в WAV-файл (без BASS.DLL)
Здравствуйте.
Перечитал на эту тему много всего и перепробовал много разных примеров кода. Нормально работает только этот: Код:
Если я правильно понял, сначала нужно создать и записать заголовок WAV. А потом в OnWaveIn делать Код:
Код:
Программа рисует график звука, а в файл какой-то мусор скидывается. То ли я заголовок неправильно создаю, то ли скидываю неправильно (в этом коде создания заголовка нет, а так-то я его создаю). Код:
Последний раз редактировалось BLACK_RAIN; 19.03.2017 в 15:43. |
20.03.2017, 20:13 | #2 |
Форумчанин
Регистрация: 16.12.2009
Сообщений: 902
|
Код:
Последний раз редактировалось Aliens_wolfs; 20.03.2017 в 20:26. |
21.03.2017, 10:23 | #3 |
Форумчанин
Регистрация: 13.02.2012
Сообщений: 867
|
|
21.03.2017, 20:07 | #4 | |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
Цитата:
Суть простая. Никто не знает как правильно. Стоит придерживаться официальной документации майкрософта: https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx Но! Если посмотреть их исходники масдая утекшие в народ. - Идёт проверка на равенство BytesPerSec = Freq * BlockAlign; - А вот вычисление BlockAlign происходит, не так как описано на MSDN, а хитрым образом. Во-первых BlockAlign зависит от WAVE_FORMAT_EXTENSIBLE. Если включено, то вычисляем, по BlockAlign := Channels * (BitsPerSample div 8); А вот если выключено, то там должно быть выравнено на границе 16 бит. * BlockAlign := Channels * (BitsPerSample+15) div 16); Но опять таки разночтение породило вот, что: http://forum.sources.ru/index.php?showtopic=310684&st=0 На разных компьютерах с одной системой работал один вариант код и не работал другой. Выбор вариант ещё зависит от драйвера и вашей звуковой карты! *) Как вы видите товарищи выравнивали код на 32 биной границы, а не на 16 битной как указано в формате RIFF. Так что это тоже вопрос открытый.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . |
|
21.03.2017, 20:57 | #5 |
Форумчанин
Регистрация: 16.12.2009
Сообщений: 902
|
Если вас устраивает звук с выбранными параметрами, то оставляйте эти параметры и это будет тоже правильно, в этих значениях нет конкретности и многое зависит от буфера вывода звука настроенного вами, а там могут быть и нестандартные значения которые нужно правильно указать в заголовке файла чтобы проигрыватель их понял.
Если все таки хотите придерживаться хоть какого нибудь стандарта звуковых значений, то откройте любой wav файл из папки Windows\Media\ прочитайте его заголовок и сравните с вашими значениями, это и будет тем стандартом которого можете придерживаться в данном случае майкрософт. Последний раз редактировалось Aliens_wolfs; 21.03.2017 в 22:13. |
22.03.2017, 07:00 | #6 |
Форумчанин
Регистрация: 13.02.2012
Сообщений: 867
|
|
22.03.2017, 10:59 | #7 |
Форумчанин
Регистрация: 29.10.2015
Сообщений: 273
|
|
22.03.2017, 12:31 | #8 | |
Форумчанин
Регистрация: 16.12.2009
Сообщений: 902
|
Цитата:
Последний раз редактировалось Aliens_wolfs; 22.03.2017 в 12:33. |
|
22.03.2017, 12:40 | #9 |
Форумчанин
Регистрация: 13.02.2012
Сообщений: 867
|
|
22.03.2017, 18:42 | #10 | ||
Форумчанин
Регистрация: 16.12.2009
Сообщений: 902
|
Цитата:
Согласен с Pavia Цитата:
Последний раз редактировалось Aliens_wolfs; 22.03.2017 в 19:09. |
||
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
bass Запись звука со всего компьютера | jhonyxakep | Мультимедиа в Delphi | 6 | 23.03.2017 11:47 |
BASS.dll - Пауза во время записи звука | DenProx | Общие вопросы Delphi | 7 | 29.11.2016 13:58 |
Bass.dll не воспроизводится wav | KrockodilL | Мультимедиа в Delphi | 2 | 16.03.2012 16:09 |
Bass.dll -непрерывное воспроизведение звука | werrey | Мультимедиа в Delphi | 9 | 13.06.2011 15:23 |
Запись звука в BASS | Gr@nd | Мультимедиа в Delphi | 1 | 18.09.2009 18:17 |