Esate.ru

Уроки OpenGL различных тематик

В этом разделе сосредоточены уроки, которые не были объединены в курсы. Большая часть уроков перенесена из авторских публикаций пользователей.

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

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

Звук в игре - одна из основных неотъемлемых составляющих, добавляющая реалистичности, необходимая для полноты самого процесса. Очень важно, чтобы звук присутствовал. В этом уроке вы познакомитесь с базовым кодом для воспроизведения звуковых файлов с помощью библиотеки Audiere.

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

Audiere может воспроизводить следующие типы файлов:
  • Ogg (Vorbis)
  • MP3
  • несжатый WAV
  • FLAC
  • AIFF
  • MOD
  • S3M
  • XM
  • IT
Сначала необходимо загрузить саму библиотеку:

Скачайте (Windows) и установите в SDK или используйте ее локально.

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

Пользователи Ubuntu могут воспользоваться подсказкой с данного скриншота:
Уроки OpenGL различных тематик: Поиск Audiere в центре приложений Ubuntu Рисунок 1. Поиск 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.
Уроки OpenGL различных тематик: Настройки линка Рисунок 2. Настройки линка.
К сожалению, как пролинковать в другой IDE, я не могу продемонстрировать.

Вот здесь можно найти, как компилить и линковать в Linux.

Также можно воспользоваться этим макросом (Windows):

Код:
/*http://esate.ru, Flashhell*/

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


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

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

Источник: Esate.ru
15 Января 2011


Комментарии (из ветки форума)

Авторизируйтесь или Зарегистрируйтесь
чтобы оставлять комментарии.

OpenGL

OpenGL

OpenGL (Open Graphics Library — открытая графическая библиотека, графический API) — спецификация, определяющая независимый от языка программирования платформонезависимый программный интерфейс для написания приложений, использующих двумерную и трёхмерную компьютерную графику.

Регистрация

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

Восстановление пароля

Пожалуйста, заполните поля, после чего вы получите код подтверждения на ваш E-mail. Если код не пришел в течении нескольких минут - проверьте папку спам.
Логин

или Email
 
Логин*
Код подтверждения*
Новый пароль*
Подтверждение пароля*
 

Авторизация

Пожалуйста, авторизуйтесь, для входа на сайт с помощью соц. сети:
  • Используйте вашу учетную запись на Facebook.com для входа на сайт.
  • Используйте вашу учетную запись VKontakte для входа на сайт.
  • Используйте вашу учетную запись Google для входа на сайт.

или с помощью аккаунта на сайте:

Логин
Пароль