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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.05.2009, 18:17   #21
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,405
По умолчанию

Воот, а вот это - уже интереснее. Теперь разберём интерфейс MCI.

Цитата:
// alias это имя к которуму привязан загружаемый файл, по этому имени мы будем обращяться чтобы проиграть звук, остановить...
if SendCommand('open "' + FileName + '" type ' + Format + ' alias ' + FileName) = False then begin
Exit;
end;
Когда интерфейс MCI выполняет команду 'open "' + FileName он создаёт образ этого файла в ОЗУ (и дальше работает с памятью), либо читает его с диска?
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума Ответить с цитированием
Старый 05.05.2009, 20:03   #22
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию Звуковой "движок", часть DelphiX

Если кому интересно, опишу как работать с компонентами. DelphiX по первой устанавливали наверное все, посему не заморачиваемся с описанием установки.
Кидаем DXSound, и банк DXWaveList, связываем. Все. Дальше через код.
Загрузка wav-файла в банк:
Код:
DXWaveList1.Items.Add;
DXWaveList1.Items[0].Wave.LoadFromFile({файл});
DXWaveList1.Items[0].Name := {имя};  // это можно для поиска применить
DXWaveList1.Items[0].Restore;
Меняем параметры:
Код:
DXWaveList1.Items.Items[0].Pan := 0; // баланс: -10000 .. 10000
DXWaveList1.Items.Items[0].Volume := 0; // громкость: -10000 .. 0
DXWaveList1.Items.Items[0].Looped := True; // если нужно зациклить
Воспроизводим:
Код:
DXWaveList1.Items.Items[0].Play(False);
Обратим внимание на параметр в скобках Play(False). Это ожидание. Если False, то звуки будут накладываться друг на друга. Если True, то конкретно этот звук будет ждать, когда наступит тишина, и тогда начнет проигрываться, и все остальные звуки будут ждать его конца, ...если я правильно все понял.

Останавливаем:
Код:
DXWaveList1.Items.Items[0].Stop;
Соответственно, Items[i] - можно использовать в цикле, заполнять звуковой лист по номеру файла, и так же обращаться к массиву и проигрывать.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 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