Звуковой массив,.. миф или реальность?!

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Звуковой массив,.. миф или реальность?!

Сообщение Andreich » 01.09.2010 10:56:50

Уважаемое сообщество, помогите разобраться с вопросом по воспроизведению звуковых фрагментов в приложении...

Сейчас в свободное время делаю простенькую игрушку, и вот подходит время озвучить игровой процесс. Попробовал воспроизводить звуковой файл при помощи PlaySound (т.е. пока только для win), но столкнулся с одним крайне неприятным явлением: при первом проигрывании наблюдается заметное притормаживание при подгрузке файла с диска, при следующем проигрывании файла такого не наблюдается (по свей видимости читается из памяти)... и так с каждым звуком, а в аркаде их не один и не два.

Есть ли возможность заранее подгрузить все нужные звуки в некое подобие массива и потом их воспроизвести? (желательно только средствами lazarus, без привлечения сторонних библиотек).
Andreich
постоялец
 
Сообщения: 268
Зарегистрирован: 17.04.2008 12:33:43

Re: Звуковой массив,.. миф или реальность?!

Сообщение Bupyc » 01.09.2010 11:06:26

Если делать всё без PlaySound, а проигрывать звук самому, то запросто.

Если интересует только Windows, погуглите по названиям апи функций WaveOutOpen, waveOutPrepareHeader, waveOutPrepareHeader.
Bupyc
постоялец
 
Сообщения: 137
Зарегистрирован: 29.08.2007 18:22:42

Re: Звуковой массив,.. миф или реальность?!

Сообщение Andreich » 01.09.2010 11:43:49

Bupyc писал(а):Если делать всё без PlaySound, а проигрывать звук самому, то запросто.

Планируется кросс-платформенность, поэтому рано или поздно от PlaySound пришлось бы отказаться. Что есть "проигрывать звук самому"?
Andreich
постоялец
 
Сообщения: 268
Зарегистрирован: 17.04.2008 12:33:43

Re: Звуковой массив,.. миф или реальность?!

Сообщение Vadim » 01.09.2010 11:47:17

Andreich
Попробуйте засунуть звуки в ресурсы экзешника. Тогда не будет обращения к файлам, а все звуки загрузятся при запуске программы. Наверное... :)
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Звуковой массив,.. миф или реальность?!

Сообщение Bupyc » 01.09.2010 11:59:03

Vadim писал(а):Andreich
Попробуйте засунуть звуки в ресурсы экзешника.


PlaySound умеет обращаться к ресурсам?

Добавлено спустя 5 минут 11 секунд:
Andreich писал(а): Что есть "проигрывать звук самому"?


Я ж Вам говорю, поищите примеры использования функций WaveOutOpen, waveOutPrepareHeader, waveOutPrepareHeader. Для проигрывания организовывается цикл и в цикле звуковой карте подсовываются блоки PCM данных из WAV файла. Структура WAV файла достаточно проста, поэтому вытащить из него данные не должно составить большого труда.

Если планируется кроссплатформенность, то я бы использовал готовую библиотеку. Точное её название не подскажу, но здесь на форуме информация о ней проскакивала.

Добавлено спустя 2 минуты 17 секунд:
Хммм ... действительно, PlaySound умеет проигрывать ресурсы. По крайней мере на MSDN об этом пишут. Не знал.

http://msdn.microsoft.com/en-us/library ... 85%29.aspx
Bupyc
постоялец
 
Сообщения: 137
Зарегистрирован: 29.08.2007 18:22:42

Re: Звуковой массив,.. миф или реальность?!

Сообщение А.Н. » 01.09.2010 12:24:58

Если планируется кроссплатформенность, то я бы использовал готовую библиотеку. Точное её название не подскажу, но здесь на форуме информация о ней проскакивала.

BASS. Бесплатна для некоммерческого. Для коммерческого - если постараться. :-)
А.Н.
постоялец
 
Сообщения: 230
Зарегистрирован: 13.03.2010 12:23:58

Re: Звуковой массив,.. миф или реальность?!

Сообщение Nik » 01.09.2010 13:15:00

BASS доступна только для Win32 и Mac OS X - для Linux версии нет (пока?). При коммерческом использовании нужно покупать лицензию.

Если уж брать библиотеку для кросс-платоформы, то лучше Fmod. Условия лицензирования у неё аналогичные (только коммерческая лицензия дороже).
Аватара пользователя
Nik
энтузиаст
 
Сообщения: 573
Зарегистрирован: 04.02.2006 00:08:09
Откуда: Киров

Re: Звуковой массив,.. миф или реальность?!

Сообщение Vadim » 01.09.2010 13:18:55

Bupyc писал(а):PlaySound умеет обращаться к ресурсам?

Ага... Если третьим параметром указать флаг SND_RESOURCE, то первым можно задать имя ресурса, а не файла.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Звуковой массив,.. миф или реальность?!

Сообщение Little_Roo » 01.09.2010 13:22:54

Nik писал(а):BASS доступна только для Win32 и Mac OS X - для Linux версии нет (пока?).
.

Есть и для Linux - http://www.un4seen.com/forum/?topic=8682.0
Аватара пользователя
Little_Roo
энтузиаст
 
Сообщения: 639
Зарегистрирован: 27.02.2009 19:56:36
Откуда: Санкт-Петербург

Re: Звуковой массив,.. миф или реальность?!

Сообщение А.Н. » 01.09.2010 13:57:03

Nik писал(а):BASS доступна только для Win32 и Mac OS X - для Linux версии нет (пока?). При коммерческом использовании нужно покупать лицензию.

Если уж брать библиотеку для кросс-платоформы, то лучше Fmod. Условия лицензирования у неё аналогичные (только коммерческая лицензия дороже).

1. BASS - кросс. Есть для Linux.
2. Не знаю ничего про FMod. Но знаю, что BASS простая, удобная и хорошо документированная. Причём, имеет широкие возможности (всякие 3D звуки, 5.1 там тоже имеются, но я не пробовал).
3. При коммерческом использовании, возможно купить лицензию. :mrgreen: Но, по крайней мере, для windows - "голь на выдумки хитра".

Добавлено спустя 5 минут 21 секунду:
Да, посмотрел, FMod крутая библиотека. Ещё и дизайнер навороченный. Но возможности BASS схожи. Почти всё тоже самое, хотя и попроще.
А.Н.
постоялец
 
Сообщения: 230
Зарегистрирован: 13.03.2010 12:23:58

Re: Звуковой массив,.. миф или реальность?!

Сообщение Andreich » 01.09.2010 14:05:12

Vadim писал(а):Попробуйте засунуть звуки в ресурсы экзешника. Тогда не будет обращения к файлам, а все звуки загрузятся при запуске программы. Наверное...

А каким образом их потом от туда проигрывать? :) Под Windows еще можно попробовать поизвращаться, а вот как в Linux быть, там ведь воспроизведение сторонними программами.
Andreich
постоялец
 
Сообщения: 268
Зарегистрирован: 17.04.2008 12:33:43

Re: Звуковой массив,.. миф или реальность?!

Сообщение А.Н. » 01.09.2010 14:07:10

Руками или используя библиотеку. Так же, как это делают "сторонние программы". :)
А.Н.
постоялец
 
Сообщения: 230
Зарегистрирован: 13.03.2010 12:23:58

Re: Звуковой массив,.. миф или реальность?!

Сообщение hinst » 01.09.2010 15:16:23

Audio Components Suite - вот крутая библиотека. Её крутизна заключается в том, что для неё не требуется дополнительных DLL- и so- и проч. файлов и библиотек, всё в исходниках.
Аватара пользователя
hinst
энтузиаст
 
Сообщения: 781
Зарегистрирован: 12.04.2008 18:32:38

Re: Звуковой массив,.. миф или реальность?!

Сообщение А.Н. » 01.09.2010 15:33:56

Знаю я её. Не пользовал, но смотрел как-то... Вроде, не торт. Только под delphi и иже с ним.
А.Н.
постоялец
 
Сообщения: 230
Зарегистрирован: 13.03.2010 12:23:58

Re: Звуковой массив,.. миф или реальность?!

Сообщение hinst » 01.09.2010 15:49:25

А.Н., вы что-то кажется путаете. я использовал с Lazarus лично, в т.ч с линухом
Аватара пользователя
hinst
энтузиаст
 
Сообщения: 781
Зарегистрирован: 12.04.2008 18:32:38

След.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 19

Рейтинг@Mail.ru