Фоновый звук приложения. Pascal

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Аватара пользователя
Колядин Максим
Сообщения: 297
Зарегистрирован: 16 ноя 2006, 19:09
Откуда: Seattle, WA
Контактная информация:

В Delphi режим оконный, все цвета, много всяких спец-эффектов (например радужное переливание текста), и др. Вот что я имел ввиду писав "функциональные возможности"
Например, можно ли воспроизвести какой-нибудь звук (не Midi) в програмной среде Pascal так, чтобы во время её выполнения играл этот звук, как фоновый?
Программист - это человек, который решает способом, который вы не понимаете, проблемы, о которых вы даже не подозревали...
Аватара пользователя
somewhere
Сообщения: 1858
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

Можно, т.к. почти все звуковые звуковые адаптеры совместимы с Sound Blaster Pro или SB 2.0 - есть такой модуль sbpro.tpu - в нем необходимые функции и процедуры для инициализации и воспроизведения звука, но надо позаботиться о том, чтобы звук был в несжатом (PCM) формате. MP3 по аналогии c JPEG надо декодировать. Можно и без модуля, но тут опять Asm ;-)
Аватара пользователя
Колядин Максим
Сообщения: 297
Зарегистрирован: 16 ноя 2006, 19:09
Откуда: Seattle, WA
Контактная информация:

А где его скачать, - никакая поисковая система не находит этот модуль вообще. Дайте, пожалуйста, ссылку на этот файл.
Программист - это человек, который решает способом, который вы не понимаете, проблемы, о которых вы даже не подозревали...
Аватара пользователя
Колядин Максим
Сообщения: 297
Зарегистрирован: 16 ноя 2006, 19:09
Откуда: Seattle, WA
Контактная информация:

Блин, скачал bkplay (http://www.dcee.net/Files/Programm/Pascal/bkplay.arj) для воспроизведения фоновой музыки, а там, как всегда, ошибка - "Cannot run the Unit". Она меня уже задалбала, постоянно, во всех программах эта ошибка!
Как её предотвратить, подскадите.
Программист - это человек, который решает способом, который вы не понимаете, проблемы, о которых вы даже не подозревали...
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

А ты разархивировать не забыл? Арж - это архив. Формат, правда, ста-арый, но Винрар должен разобрать.
Или ты разархивировал в pas и пытаешься запустить? Тогда тоже логично, модуль запустить невозможно (собственно, когда компилятор после синтаксической проверки начинает проверять программу, останавливается ровно на слове unit). Его надо подключать и использовать импортированные из него процедуры и функции
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Аватара пользователя
somewhere
Сообщения: 1858
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

Да, сам когда-то этой ерундой занимался. Будешь музыку через PC-Speaker слушать. Раньше конечно мощный динамик стоял, а сейчас такие пищалки :-) Только там по нотам, ты же вроде MIDI не хотел?
Аватара пользователя
somewhere
Сообщения: 1858
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

Колядин Максим, лови, там лежит для Sound Blaster'a модуль

http://ftp.nsk.su/cgi-bin/bbs2html?pub/language/pascal
Аватара пользователя
Колядин Максим
Сообщения: 297
Зарегистрирован: 16 ноя 2006, 19:09
Откуда: Seattle, WA
Контактная информация:

Цтата:
__________________________________
Хыиуду: А ты разархивировать не забыл?
__________________________________
Нет, конечно. Я сразу же извлёк файлы WinRar'ом.

Цтата:
__________________________________
Хыиуду: Или ты разархивировал в pas и пытаешься запустить?
__________________________________
Нет, модудь запускать я тоже не собираюсь. Просто скачал много всяких модулей с примерами (mouse.rar;256colorsVGA;gameEngine и musBackground в том числе) там в архивах есть test.pas или music.pas,- везде всегда возникает ошибка "Cannot run the Unit". Somewhere, спасибо конечно за ссылку, но не мог бы ты дать мне её "прямую" (прямую ссылку, значит ссылку ведущую точно к указанному файлу для скачивания)
, ато я там не разберусь - сильно много всего, не найду модуль.
Программист - это человек, который решает способом, который вы не понимаете, проблемы, о которых вы даже не подозревали...
Аватара пользователя
Колядин Максим
Сообщения: 297
Зарегистрирован: 16 ноя 2006, 19:09
Откуда: Seattle, WA
Контактная информация:

Скачал нормальный модуль Music Background, ещё не извлечёный (bkmusic.pas). Он использует 2 модуля (Uses Dos, objects ;) , но при запуске выдаётся ошибка
"Unit version mismatch (objects)". Я знаю, что это означает несовпадение модулей между требуемым и используемым. Почему модуль objects.tpu не совпадает с требуемым. Какой модуль нужен?
Программист - это человек, который решает способом, который вы не понимаете, проблемы, о которых вы даже не подозревали...
Аватара пользователя
somewhere
Сообщения: 1858
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

Ну что ты все зацыклился на Background Music. Тебе надо модуль работы со звуковой картой, в частности как поддерживаемый всеми стандарт Sound Blaster. Там такой красивый модуль лежит, audio.arj, просто открываешь audio.pas, компилишь, получаешь Audio.tpu. Почитаешь описание процедур - поймешь что к чему.

Перед работой со звуковой картой надо:

1. Инициализировать ЗК.
2. Создать процедуру обработки прерываний ЗК.
3. Задать буффер для работы с сэмплами, но играть семплов надо в 2 раза меньше буффера, т.к. по окончании воспроизведения какого-то блока ЗК вырабатыает прерывание, которое и обрабатывает твоя процедура. В этой обработке обычно вступают декодирование и заполнение сэмплами той половинки буффера, которая не играет (допустим первую). По окончании воспр. второй половинки ЗК опять вырабатывает прерывание (которое заполняет вторую половину) и возвращаеться в начало буффера. Таким образом достигается непрерывное воспроизведение. Причем программа может делать все что ей угодно, когда надо ее прервут для обработки звука. Вот тебе и фоновый звук, не ловись на слова Background и Music. А вот тебе архив (если вдруг опять там не найдешь) и компиленый TPU (если вдруг опять не скомпилиться) :-)
Ответить