Audiere: заметки очевидца 2
От: _chipset Россия http://merlinko.com
Дата: 02.04.05 11:44
Оценка: 14 (2)
#Имя: FAQ.audio.audiere
Привет всем!
Написал вот ещё статейку, по Audiere. Следующий на линии: OpenAL.
                                      

                                        Audiere: заметки очевидца 2
Введение

Доброго времени суток!

В прошлой статье fMOD: заметки очевидца, я писал о библиотеке для работы со звуком под названием FMOD. Сегодня я продолжу описывать звуковые библиотеки, и следующим предметом обсуждения будет Audiere. Постараюсь одновременно сравнивать её с FMOD'ом, чтобы вы могли определиться в выборе.

Итак! Библиотека Audiere довольно старовата, последняя ревизия (1.9.3) была выпущена аж в июле 2003-ого, в то время как последняя новость на сайте FMOD значится 11-ого января, 2005-ого года. Впрочем, если для вас это не критический
недостаток — читаем дальше.

Описание

Audiere проигрывает следующие форматы звуковых файлов: Ogg Vorbis, MP3, FLAC, несжатый Wav, AIFF, MOD, S3M, XM, и IT. Из платформ поддерживается: всеми любимые Винды, Линукс и IRIX. Как мы видим, приставки Audiere обделил. Опять-же, если для вас это критический фактор — можете сразу переходить к изучению документации по FMOD. Хотя главным языком для
библиотеки и является C++ (не Си, см. ниже), с ней также можно работать и под Java, Python и XPCOМ.

Домашняя страница Audiere расположена по адресу http://audiere.sourceforge.net. Пройдя на список проектов, которые
используют Audiere(http://audiere.sourceforge.net/users.php), мы узнаем, что там, среди всей тучи прочего, числится такой известный движок, как Irrlicht, и несколько игр которые были написаным RSDN'овцами

Практически основополагающим фактором, который может кардинально повлиять на ваше решение, является то, что Audiere является полностью бесплатной, распространяется по лицензии LGPL, и поставляется с исходниками. Это выгодно отличает его от ФМода, за использование которого в коммерческих проектах необходимо платить. Опять-же, для некоторых это не является большой проблемой.

Практика

После того как вдоволь насерфились по офсайту, давайте попробуем всё это дело установить и попробовать написать какой-нибудь тестовой пример. Я буду использовать Visual Studio 2003 и C++, по причинам, описанным в предыдущих заметках очевидца.

Скачайте последний Win32 Binary Release(отсюда:http://audiere.sourceforge.net/download.php,558 KB) и распакуйте его в ту папку где вы обычно храните внешние библиотеки (у меня, к примеру, это: f:\libs\). Лирическое отступление: Меня таки удалось переубедить, складывать библиотеки и включаемые файлы не в папку компилятора, а в отдельный каталог. Хотя, я до сих пор считаю это делом вкуса..

Таким образом, у вас образовалось пять папок: bin, bindings, doc, include, и lib. Теперь, пропишите полный путь к lib
(MSVS2003->Tools->Options->Projects->VC++ Directories->Show directories for: Library files->кнопка с изображением папки->укажите папку где лежат lib) и inc(то же самое, только: Show directories for: Include files и укажите папку include).

Теперь, создайте новый Win32 Console Project с параметром Empty project и добавьте .cpp файл. Ещё одна маленькая деталь: перед тем как мы напишем небольшой пример, добавьте в корень свежесозданного проекта файл audiere.dll из
<каталога_с_audiere\bin>. Теперь мы полностью готовы.

Первое что я заметил приступив к изучению библиотеки, была полностью обьектно-ориентированная структура оной, в сравнении FMOD который является чисто — процедурной библиотекой. Это вполне логично, поскольку он связан по рукам и ногам Visual Basic'ом. Ещё одно очко в пользу Audiere... или FMOD, всё зависит от целей которые вы преследуете.

Итак, вот код, попытался выкинуть всё лишнее и ненужное:

#include <audiere.h> //включаем заголовочный файл
#pragma comment (lib, "audiere.lib")//библиотека audiere
using namespace audiere; //включаем namespace аудиеры

int main()
{
    AudioDevicePtr soundDevice(OpenDevice());
    /*Указатель на звуковое устройство вывода, тут же
     инициализируется в конструкторе, свежеоткрытым 
     девайсом*/
    OutputStreamPtr ourSong(OpenSound(soundDevice,"15-roulette.mp3",false));
    /*Первый параметр обозначает наше устройство вывода звука (думайте о аналогиях с
    HDC в GDI). Второй параметр - имя звукогового файла(кстати его тоже надо положить к 
    проекту. Третий параметр: если false - поток читается из файла (а если файлик, эдак
    мегабайт под 90? :)), если true - грузится в память (выстрел, удар кувалдой, 
    коротенькие файлы).*/
    ourSong->setVolume(0.3f);//30% громкости
    ourSong->play();//проигрываем
    while(ourSong->isPlaying());//пока играет - закрывать не будем
    //документация говорит не удалять указатель, так-как RefPtr удалит его сам
    return 1;
}


Выводы

Подведем итоги! Что мне удалось выявить в Audiere, по сравнению с FMOD:
Преимущества:
  1. Бесплатность для коммерческого использования.
  2. Кроссплатформенность(IRIX).
  3. Полностью обьектно-ориентированный интерфейс.
  4. Поддержка FLACa,S3M, XM.
  5. Поддержка Java, Python, XPCOM (JS в Мозилле).

Недостатки:

  1. Сайт разработчика давно не обновляется (не критично, но всё же)
  2. Скудное количество возможностей (мда, в FMOD'e и запись звука, и 3D, и море всего)
  3. Отсутствие порта на PSP, Macintosh,GameCube, XBox.
  4. Нету поддержки Дельфи, VB (я не видел).
  5. Документации там собственно стандартной и нету, так, tutorial, ридми, параметры к девайсам и т.д..
  6. Ужасающий размер DLL (~500) KB, хотя мне удалось сжать до 170 (FMOD: 160, сжатый).
  7. Нету поддержки MIDI.

Окончательные выводы

Кому может быть полезен Аудиер? Так и вырисовывается целевая аудитория: разработчики игр, которые не хотят таскать с собой тяжеленные WAV'ы, и которым просто нужно проигрывать игровой звук(кстати FLAC неплохо его сжимает). Кроме того, они зверски не хотят платить за FMOD, предпочитая обходиться бесплатными продуктами.

С другой стороны, я думаю что FMOD заинтересовал бы разработчиков плееров, обработчиков звука, команд работающими над какими-нибудь сложными 3D-шутерами с неменее сложным, 3D-шным звуком, для которых сумма за лицензию — смешна.

Ну а вообще.. решение зависит только от вас!

Удачи!
... << А писал её весь этот бред на RSDN@Home 1.1.4 beta 4 rev. 378, да под звуки Алиса — Плач .>>
"Всё что не убивает нас, делает нас сильнее..."
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.