Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.04.2009, 19:03   #1
Shadow_1329
Форумчанин
 
Аватар для Shadow_1329
 
Регистрация: 23.02.2009
Сообщений: 237
По умолчанию Чем воспроизводить очередь звуков?

Кароч, мне надо сделать пулеметеый залп и как воспроизводить в MediaPlayer этот залп если он проигрывает 1 раз зависает и опять проигрывает т.е. промежуток между выстрелами намного меньше чем у воспроизведения звуков а как зделать одинаковым не пойму!
Shadow_1329 вне форума Ответить с цитированием
Старый 30.04.2009, 19:25   #2
awilum
Форумчанин
 
Аватар для awilum
 
Регистрация: 23.12.2008
Сообщений: 102
По умолчанию

Брать движок и забыть про MediaPlayer
https://github.com/Awilum - Open Source Evangelist
awilum вне форума Ответить с цитированием
Старый 30.04.2009, 20:23   #3
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Можно использовать библиотеку DXSounds, идет вместе с DelphiX, единственная вещь, которая меня устраивает в оном.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 01.05.2009, 20:00   #4
Вадим Буренков
Участник клуба
 
Аватар для Вадим Буренков
 
Регистрация: 06.03.2009
Сообщений: 1,346
По умолчанию

Для начала я хотел бы видеть исходник чтобы понять где проблема и как ее лечить.
По поводу пулемета: у него должен быть такой параметр как скорострельность, т.е временной промежуток между выстрелами. А дальше в блок выстрела вставляешь строчку проигрывания звука.

По поводу MediaPlayer: это не самый удачный вариант проигрывания звуков в игре, т.к он имеет ряд недостатков:
1)Не поддерживает одновременное воспроизведение звуков.
2)
Цитата:
проигрывает 1 раз зависает и опять проигрывает т.е. промежуток между выстрелами намного меньше чем у воспроизведения звуков
3)Требует размещения на форме.

Следовательно нужно использовать что либо другое, например функцию
PlaySound('D:\Sound.wav', 0, SND_ASYNC); в модуле MMSystem.В ней есть только первая проблема.
Ести тебе нужно одновременное воспроизведение звуков, то я могу выложить очень простой для работы модуль, в котором нет всех этих проблем.
Вадим Буренков вне форума Ответить с цитированием
Старый 02.05.2009, 00:25   #5
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Ни в коем случае не нужно читать каждый звук с винта, ...грузите в память и воспроизводите.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 02.05.2009, 14:37   #6
Вадим Буренков
Участник клуба
 
Аватар для Вадим Буренков
 
Регистрация: 06.03.2009
Сообщений: 1,346
По умолчанию

Цитата:
Ни в коем случае не нужно читать каждый звук с винта, ...грузите в память и воспроизводите.
1)А это как?
2)А это зачем?
Вадим Буренков вне форума Ответить с цитированием
Старый 02.05.2009, 15:16   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

1)хоть те же потоки(TMemoryStream)
2)как вы думаете где скорость выше?
в чтении с винта или с оперативки?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 02.05.2009, 22:22   #8
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,405
По умолчанию А как на DirectX_e??

Ксати, может подскажет кто-нибудь. У метода Play интерфейса IDirectSoundBuffer есть какие нибудь флаги для того, чтобы воспроизводить одновременно с небольшим разносом по времени один и тот же звук из одного буфера? А то я всегда заводил для автоматов пулемётов и т.д. набор буферов и заполнял их одними и теми же данными. Но ведь это неоптимально. Память расходуется почём зря.
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума Ответить с цитированием
Старый 04.05.2009, 13:16   #9
Shadow_1329
Форумчанин
 
Аватар для Shadow_1329
 
Регистрация: 23.02.2009
Сообщений: 237
По умолчанию

Я попробовал через PLaySound, но вместо того чтобы воспроизводить он просто пикает таким звуком, который похож на когда ты много клавишь зажимаешь. Что с этим делать?
Shadow_1329 вне форума Ответить с цитированием
Старый 04.05.2009, 14:49   #10
Вадим Буренков
Участник клуба
 
Аватар для Вадим Буренков
 
Регистрация: 06.03.2009
Сообщений: 1,346
По умолчанию

Скорее свего проблема вызвана тем, что неправильно указано имя файла.
Вот пример использования PlaySound с исходником:
Вложения
Тип файла: rar PlaySound.rar (184.6 Кб, 25 просмотров)

Последний раз редактировалось Вадим Буренков; 04.05.2009 в 14:56.
Вадим Буренков вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Склеивание звуков varvara16 Мультимедиа в Delphi 24 14.11.2008 18:24
очередь odi_noki Общие вопросы Delphi 3 24.10.2008 12:09
Диаграммы звуков Kor Мультимедиа в Delphi 1 30.09.2008 22:43