Страница 1 из 2

Re: ПОМОГИТЕ! (Pascal)

Добавлено: 11 дек 2006, 01:13
Колядин Максим
В Delphi режим оконный, все цвета, много всяких спец-эффектов (например радужное переливание текста), и др. Вот что я имел ввиду писав "функциональные возможности"
Например, можно ли воспроизвести какой-нибудь звук (не Midi) в програмной среде Pascal так, чтобы во время её выполнения играл этот звук, как фоновый?

Re: ПОМОГИТЕ! (Pascal)

Добавлено: 11 дек 2006, 12:12
somewhere
Можно, т.к. почти все звуковые звуковые адаптеры совместимы с Sound Blaster Pro или SB 2.0 - есть такой модуль sbpro.tpu - в нем необходимые функции и процедуры для инициализации и воспроизведения звука, но надо позаботиться о том, чтобы звук был в несжатом (PCM) формате. MP3 по аналогии c JPEG надо декодировать. Можно и без модуля, но тут опять Asm ;-)

Re: ПОМОГИТЕ! (Pascal)

Добавлено: 11 дек 2006, 14:59
Колядин Максим
А где его скачать, - никакая поисковая система не находит этот модуль вообще. Дайте, пожалуйста, ссылку на этот файл.

Re: ПОМОГИТЕ! (Pascal)

Добавлено: 11 дек 2006, 15:33
Колядин Максим
Блин, скачал bkplay (http://www.dcee.net/Files/Programm/Pascal/bkplay.arj) для воспроизведения фоновой музыки, а там, как всегда, ошибка - "Cannot run the Unit". Она меня уже задалбала, постоянно, во всех программах эта ошибка!
Как её предотвратить, подскадите.

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

Добавлено: 12 дек 2006, 10:20
Хыиуду
А ты разархивировать не забыл? Арж - это архив. Формат, правда, ста-арый, но Винрар должен разобрать.
Или ты разархивировал в pas и пытаешься запустить? Тогда тоже логично, модуль запустить невозможно (собственно, когда компилятор после синтаксической проверки начинает проверять программу, останавливается ровно на слове unit). Его надо подключать и использовать импортированные из него процедуры и функции

Re: ПОМОГИТЕ! (Pascal)

Добавлено: 12 дек 2006, 14:39
somewhere
Да, сам когда-то этой ерундой занимался. Будешь музыку через PC-Speaker слушать. Раньше конечно мощный динамик стоял, а сейчас такие пищалки :-) Только там по нотам, ты же вроде MIDI не хотел?

Re: ПОМОГИТЕ! (Pascal)

Добавлено: 12 дек 2006, 16:47
somewhere
Колядин Максим, лови, там лежит для Sound Blaster'a модуль

http://ftp.nsk.su/cgi-bin/bbs2html?pub/language/pascal

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

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

Цтата:
__________________________________
Хыиуду: Или ты разархивировал в pas и пытаешься запустить?
__________________________________
Нет, модудь запускать я тоже не собираюсь. Просто скачал много всяких модулей с примерами (mouse.rar;256colorsVGA;gameEngine и musBackground в том числе) там в архивах есть test.pas или music.pas,- везде всегда возникает ошибка "Cannot run the Unit". Somewhere, спасибо конечно за ссылку, но не мог бы ты дать мне её "прямую" (прямую ссылку, значит ссылку ведущую точно к указанному файлу для скачивания)
, ато я там не разберусь - сильно много всего, не найду модуль.

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

Добавлено: 12 дек 2006, 23:48
Колядин Максим
Скачал нормальный модуль Music Background, ещё не извлечёный (bkmusic.pas). Он использует 2 модуля (Uses Dos, objects ;) , но при запуске выдаётся ошибка
"Unit version mismatch (objects)". Я знаю, что это означает несовпадение модулей между требуемым и используемым. Почему модуль objects.tpu не совпадает с требуемым. Какой модуль нужен?

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

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

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

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