Внимание!

Эта публикация перенесена в раздел уроков по адресу Звук в игре (мультимедиа).
К ней прикреплена новая отдельная ветка комментариев форума, которую вы можетет найти после текста публикации.
Обсуждение публикации рекуомендуется вести по новому адресу, который указан выше.

Звук в игре (мультимедиа)

Воспроизведение звуковых файлов, в играх, и не только, с помощью простой и удобной библиотеки audiere (С++)
Звук в игре - одна из основных неотъемлемых составляющих, добавляющая реалистичности и играбельности. Поэтому, звук должен хотя бы присутствовать.
В этом топике я разберу базовый код, для воспроизведения звуковых файлов с помощью библиотеки audiere.


Audiere - это очень простая и удобная, кроссплатформенная, высокоуровневая библиотека для воспроизведения звуковых файлов.

Она может воспроизводить, следующие типы файлов:
  • Ogg (Vorbis),
  • MP3,
  • несжатый WAV,
  • FLAC,
  • AIFF,
  • MOD,
  • S3M,
  • XM,
  • IT.
И так приступим!
Сперва, очевидно нужно заполучить эту библиотеку:
скачать (Windows) и установить в SDK или же ее можно использовать локально.

Пользователи Linux должны установить audiere с репозитория, ну или собрать из исходников)=)

Пользователи Ubuntu могут воспользоваться подсказкой с данного скриншота:


здесь просто показано, как был вбит в поиск audiere, в центре приложений Ubuntu.

Теперь приступим собственно к программированию
Здесь показан пример просто демонстрирующий возможности библиотеки.
/*http://esate.ru, Flashhell*/

#include <string>  //подключаем заголовочный файлы
#include <iostream>
using namespace std;  //включаем использование пространства имен
#include <audiere.h>
using namespace audiere;
int main(int argc, char **argv)
{
    string filename;  //Создаем строку которая будет содержать путь к файлу
  cout << "Enter the filename "; //Запрашиваем путь к файлу
  cin >> filename;  //Вводим строку

  AudioDevicePtr device = OpenDevice();//Открываем аудио устройство
  OutputStreamPtr sound(OpenSound(device, filename.c_str(), false));// Открываем аудио поток. 
//Первый параметр OpenSound - устройство, второй путь в C строке(const char *filename), 
//третий параметр указывает, воспроизводить ли в потоке

  sound->play();  // воспроизводим поток
  sound->setRepeat(true);  //Включаем повторение
  sound->setVolume(1.0f);  //Устанавливаем громкость

      int i;
  cin>>i; //Ожидаем ввода
  return 0;
}

Линкуем
И так код есть, пора настроить линкер.
Вот скрин подсказывающий как пролинковать в Code::Blocks


К сожалению, как пролинковать в другой IDE я не могу продемонстрировать.((
Вот статья как компилить и линковать в Linux.
Можно также воспользоваться этим макросом(Windows):
/*http://esate.ru, Flashhell*/

#pragma comment(lib, "audiere.lib")

После компиляции и запуска вводим полный путь к файлу, и радуемся воспроизведению)))

Запомните инициализация устройства(device) должна производиться один раз в начале работы приложения, иначе производительность может сильно упасть.

Заключение Audiere - удобна, проста и переносима, и отлично подойдет для простых игр(казуалок). Но для более интересных трехмерных игр нужны 3D эффекты звука, которые отсутствуют в audiere.
0      866        15.08.2011

Внимание!

Эта публикация перенесена в раздел уроков по адресу Звук в игре (мультимедиа).
К ней прикреплена новая отдельная ветка комментариев форума, которую вы можетет найти после текста публикации.
Обсуждение публикации рекуомендуется вести по новому адресу, который указан выше.

^
Регистрация
Регистрируясь, вы принимаете правила сайта. Если вы не получили код подтв. регистрации - не забудьте проверить папку спам.
Логин*
Email*
Пароль*
Подтверждение пароля*
 
Логин*
Код*
 
×
Восстановление пароля
Пожалуйста, заполните поля, после чего вы получите код подтверждения на ваш Email. Если код не пришел в течении нескольких минут - проверьте папку спам.
Логин

или Email
Логин*
Код подтверждения*
Новый пароль*
Подтверждение пароля*
×
Авторизация
  • Используйте вашу учетную запись на Facebook.com для входа на сайт.
  • Используйте вашу учетную запись VKontakte для входа на сайт.
  • Используйте вашу учетную запись Google для входа на сайт.
Авторизуйтесь с помощью соц. сети или с помощью аккаунта на сайте:
×