Привет.
Нужен самый простой бесплатный звуковой двиг, который можно встроить в программу максимум за 2 дня. Нужно проигрывание ogg. Пока пытаюсь разобраться с openAL, однако тут есть непонятки определённые. Хотелось бы что-то простое вроде bass'а. Кстати, на счёт bass'а, кто-нить знает если я покупал bass, то как мне скачать его с офф. сайта ? Там только кнопочка Purchase.
Gladiator
Какие проблемы с яOpenAL?
Чем не устраивает оригинальный ogg vorbis?
Gladiator
> Кстати, на счёт bass'а, кто-нить знает если я покупал bass, то как мне скачать
> его с офф. сайта ? Там только кнопочка Purchase.
BASS бесплатен для некоммерческого, и для коммерческого, если продукт дешевле 4010 евро. Поэтому скачать его можно всегда, бесплатно:
udp. Сейчас почитал ихнюю лицензию. Походу поменяли, для продуктов стоимостью от 10 до 40 баксов теперь надо покупать лицензию за 125 евро, раньше такого не было.
Использую https://github.com/FrictionalGames/OALWrapper но есть один недостаток он тянет за собой SDL2 и мне пришлось два дня убить чтобы отвязать его от SDL.
MrShoor
+1
Басс оч. крут! :)
FROL
> Басс оч. крут!
Чем же?
ogg формат идет со своей родной библиотекой воспроизведения. Повторяю вопрос, чем она не устраивает, если нужен только ogg? Или не только он нужен? Или вы не на С++ программируете?
Библиотеку эту я использовал когда-то. Ничего сложного в ее интерфейсе нет, любому программисту доступно применение.
gamedevfor
> Чем же?
Простейший API. Широкие возможности (хавает кучу форматов, 3д звук, апи на коллбеках для генерации звука и куча еще чего, вот сам почитай: https://www.un4seen.com ). Кроссплатформа.
upd. А еще шикарная справка и огромный ворох примеров по использованию.
Zab
> ogg формат идет со своей родной библиотекой воспроизведения.
ogg - это вообще контейнер. Туда можно положить что угодно, в каком угодно формате. Как это, воспроизводить контейнер?
MrShoor
> ogg - это вообще контейнер. Туда можно положить что угодно, в каком угодно формате. Как это, воспроизводить контейнер?
ogg vorbis - это конкретное наполнение контейнера.
В свое время пришлось переходить на эту библиотеку, когда в течение почти двух лет mp3 был форматом не легальным (когда его AOL перекупила и закрыла). Теперь такой необходимости нет, вроде бы.
https://github.com/raysan5/raylib/issues/52
Целый список библиотек.
Zab
> ogg формат идет со своей родной библиотекой воспроизведения.
Так там же вроде только декодер, разве нет? Стриминг и вывод звука через платформенное апи всё равно надо самому писать.
BUzer
> Так там же вроде только декодер, разве нет? Стриминг и вывод звука через платформенное апи всё равно надо самому писать.
А вот этого не помню. У меня было свое низкоуровневое воспроизведение, поэтому не обратил внимание есть ли в библиотеке.
Нашёл уроки здесь на сайте(openAL). Очень хорошие.
Единственное есть непонятки с тем как это работает. В частности, я думаю что звуки скорее всего нужно кешировать как-то, чтобы каждый раз не грузить их с диска. И вот в этом месте непонятка.
Если разобрать код, то там есть следующее:
// Создаем источник соответствующий нашему звуку alGenSources(1, &mSourceID);
Почитал спецификацию, но не нашёл конкретно что эта функция делает. Нет, я понимаю, что она создаёт источник. Но что это значит для меня ? Я могу сколько угодно источников сделать ?
т.е. условно сделать мапу:
// key: filename, value: sourceID std::map<string, int> soundsList;
Это так делается ?
Тема в архиве.