![]() |
Модераторы: Rickert |
![]() ![]() ![]() |
|
Dubinsky |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 252 Регистрация: 1.6.2005 Репутация: нет Всего: нет |
ну собственно всё в названии темы ... как имея "рисунок" звука его проиграть и наоборот ?
|
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 7 Всего: 232 |
Пишем осцилограмму в Wav-файл, и проигрываем с пом. PlaySound().
-------------------- ![]() |
|||
|
||||
Dubinsky |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 252 Регистрация: 1.6.2005 Репутация: нет Всего: нет |
хммм , ну примерно так я и думал что мне ответят ...
ну вообщем логично , да , а вот как записать в ВАВ файл что то ?и нельзя ли напрямую в буффер Директ саунда записать ? |
|||
|
||||
mr.DUDA |
|
||||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 7 Всего: 232 |
Добавлено @ 08:04 З.Ы. насчёт директсаунда я пока не разбирался, но по идее - можно... ![]() -------------------- ![]() |
||||
|
|||||
Dubinsky |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 252 Регистрация: 1.6.2005 Репутация: нет Всего: нет |
ухх ты неплохо , наконец то я увидел внутренности вав файла , сколько книг дома лежит по работе со звуком , и ни в одной не написано как ручками писать , спасибо
и всё таки интересно а как хранится звук в буферах директ саунда ? |
|||
|
||||
DragonFire |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 14.8.2005 Где: Москва Репутация: 5 Всего: 9 |
А кода для Delphi нет?
|
|||
|
||||
mr.DUDA |
|
||||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 7 Всего: 232 |
в том вся и "фишка", что воспроизводимый звук хранится в буферах директ саунда ![]()
может, есть в Delphist FAQ (форум по Delphi), нужно спросить у Vit'а. -------------------- ![]() |
||||
|
|||||
DragonFire |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 14.8.2005 Где: Москва Репутация: 5 Всего: 9 |
![]() ![]() ![]() ![]() ![]() ![]() |
|||
|
||||
Dubinsky |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 252 Регистрация: 1.6.2005 Репутация: нет Всего: нет |
стоп стоп стоп ! как эту фразу понимать ? тот звук , что воспроизводится , тот и хранится , или это намёк на то что в буфере директа вав формат используется ? |
|||
|
||||
mr.DUDA |
|
||||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 7 Всего: 232 |
Эххх, не хотелось мне, но пришлось поднять документацию по DirectSound... ![]() Вкратце, DS работает так. При инициализации DS автоматом создаётся главный буфер (primary buffer), с которым программер не работает явно; в этом буфере микшируются звуки из всех вторичных буферов (secondary buffer), которые нужно создать явно, и которыми полностью распоряжается программер. Теперь - что такое secondary буфер и с чем его едят. Создать буфер можно вызвав IDirectSound8::CreateSoundBuffer. При создании буфера мы полностью описываем формат WAV-данных, которые туда будут записаны, и способ которым DS получает эти данные. Да, именно WAV без компрессии ! Никаких там MP3. Прокатит даже WAV, созданный в ф-ции SuperBeep, только без WAVHEADER-а; он не нужен, т.к. вся инфа о формате данных описывается при создании буфера. Пример, как создаётся буфер, есть в документации из DX SDK, но если нужно будет - спрашивайте, напишу как. Дальше - больше... ![]() Чтобы записать данные в буфер, можно пойти двумя путями. Можно создавать буфер статическим (static buffer) либо динамическим (streaming buffer). В статический буфер данные записываются как правило (но необязательно) один раз. Чтобы записать данные в буфер, нужно его залочить и получить начальный адрес в памяти, затем положить WAV-данные по полученному адресу, и наконец - разлочить буфер. Все эти действия выполняет интерфейс IDirectSoundBuffer8. Проиграть содержимое буфера можно с пом. IDirectSoundBuffer8::Play. Добавлено @ 09:39
У Vit'а нужно спрашивать в форуме по Delphi, хотя можно спросить и у p0s0l, и у других участников того же форума ![]() -------------------- ![]() |
||||
|
|||||
DragonFire |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 14.8.2005 Где: Москва Репутация: 5 Всего: 9 |
Спасибо, уже спросил...
|
|||
|
||||
Dubinsky |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 252 Регистрация: 1.6.2005 Репутация: нет Всего: нет |
спасибо , теперь есть от чего плясать , подумаем ...
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Программирование игр, графики и искуственного интеллекта" | |
|
НА ЗЛОБУ ДНЯ: Дорогие посетители, прошу обратить внимание что новые темы касающиеся новых вопросов создаются кнопкой "Новая тема" а не "Ответить"! Любые оффтопиковые вопросы, заданные в текущих тематических темах будут удалены а их авторы, при рецедиве, забанены.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rickert. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Программирование игр, графики и искусственного интеллекта | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |