API аудиосистемы Unix - PullRequest
       0

API аудиосистемы Unix

0 голосов
/ 26 марта 2012

Я хотел бы перенести существующее приложение Windows на Unix, и я не могу найти определенную информацию, касающуюся аудиосистемы Unix, и я был бы признателен, если бы кто-то мог поделиться своим опытом по этому поводу.

Как я могу:

  • получить все звуковые карты, подключенные к ПК?
  • получить количество каналов звуковой карты?
  • получить текущую громкость звуковой карты на канал?
  • подключите аудиосистему и рассчитайте громкость воспроизводимого звука (что-то вроде регулятора громкости в Windows 7, где «громкость» отображается зеленой полосой).(Я понимаю математическую схему, но смотрю, если система уже предоставляет подобный пакет)?

Можно ли сделать это для каждой системы Unix или мне нужно сделать это для каждой системы по-разному (вкл.FreeBSD, Ubuntu ...)?

Ответы [ 2 ]

1 голос
/ 26 марта 2012

Существует множество различных конкурирующих звуковых API на различных до сих пор Unixes.

Linux, похоже, сошлись на PulseAudio API для вывода звука общего назначения;Насколько я понимаю, это имеет схожие возможности с DirectSound.Вам также следует изучить ALSA , который является API-интерфейсом нижнего уровня, который все еще широко используется, и JACK , который находится на том же уровне, что и PulseAudio, но специально предназначен для записи студийного типа.Работа.Они должны быть применимы во всех последних версиях Linux.(Примечание: если вы пытаетесь распространить скомпилированный код для Linux как сторонний поставщик программного обеспечения, вы делаете это неправильно. Распространите источник, и дистрибутивы скомпилируют его для вас.)

Документация гласит PulseAudio и JACK также работают на FreeBSD, но я не знаю, насколько они популярны .Я не знаю ни о каких других BSD или оставшихся проприетарных Unix.

Держитесь подальше от всего, что называет себя "OSS", если у вас нет альтернативы.Первоначально это было название старого, давно устаревшего звукового API уровня ядра только для Linux.Более недавняя попытка воскресить его ("OSSv4") AFAICT только смогла произвести зомби.

1 голос
/ 26 марта 2012

Unix имеет большой беспорядок в аудио-фреймворках.Возможно, вам придется выполнять некоторую работу в зависимости от платформы / фреймворка.Я рекомендую начать работу с PortAudio / PortMixer.Он используется Audacity, так что, надеюсь, он сможет удовлетворить большинство ваших потребностей.Но он должен поддерживать наиболее распространенные варианты Unix, такие как Mac OS X, Linux-Alsa, Linux-OSS, FreeBSD и, я полагаю, еще несколько.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...