Linux, проблема со звуком $

  • Автор темы vasilevs
  • Дата начала
Статус
Закрыто для дальнейших ответов.
V

vasilevs

#1
Люди шаращие ! Помогите плиз . Работаю с одним хлопцем , он мне пишет программу за $ . Он хороший программер но возникла проблема которая может повлиять на наши отношения :-(
Суть. Пишем музыкальную программу. Уже практически всё написали и работает, но с cтрого с определённым оборудованием ( встретились только 2 звуковухи которые нормально работали одна старая очень , другая старая SBLive! )
Купили новую, AUDIGY. ALSA нашла её , определила и установила драйвер. Консольный плеер amp в консоли играет всё нормально но наша программа не стартует. Долго разбирались пока не нашли следующее. Если поставить старые карты, которые нормально работают с нашей программой, можно одновременно запустить 2 консольных плеера amp и они одновременно будут играть . Но если поставить AUDIGY ( и ряд других карт ) , то первый amp работает а второй отказывается и кричит :

root@localhost:~# amp /root/1.mp3

amp 0.7.6, © Tomislav Uzelac 1996,1997
THIS PROGRAM COMES WITH ABSOLUTELY NO WARRANTY
PLEASE READ THE DOCUMENTATION FOR DETAILS

Playing: /root/1.mp3
Unable to open the audio device

Properties: stereo 44100Hz
Coding Method: MPEG1.0 layer3
Bitrate: 192kbit/s
Broken pipe
root@localhost:~#


Мой программер говорит что в том что эта карта ( в данном случае AUDIGY ) не поддерживает много потоков и типа сливай воду. Но я не могу привязываться к строго определённым картам а уж тем более к старым . К тому же мне очень тяжело поверить что AUDIGY чего то может неподдерживать ...


В проекте используется :
XFree
Qt3
Kernel 2.6.18
ALSA 1.0.13


Пожалуйста , скажите можно ли как то победить ситуацию ? Или мне прийдётся скупить на радиобазаре всё старое барахло ?

Или мой программер ленится что бы решить эту проблему ?

Спасибо большое !!!!!!!!!!
 
S

Shadow-Master

#2
У меня к примеру на cm8738 xmms и др. приложения монопольно захватывают звуковуху и при попытке другим приложением чё-нидь говорит:Device bysy или device already in use.
 
R

Rommer

#3
Ваш программер абсолютно прав. По умолчанию через ALSA одновременно можно проигрывать столько потоков, сколько звуковая карта может смешивать хардварно. На старый звуковухах это ~ 4 потока, SBLive! (у меня сейчас стоит) - 16 потоков, все остальные, что я встречал (встроенные в мптеринку) - 1.
Вам поможет плагин к ALSA - dmix: он смешивает звуки софтваро на уровне библиотек alsa, а дальше отправляет на звуковую карту только один поток. Да моей Fedora Core 3 он включается так:
Вконце /etc/alsa/alsa.conf нужно дописать следующее:
#
# Dmix ALSA plugin
#

pcm.ossmix {
type dmix
ipc_key 1027
slave {
pcm "hw:0,0"
period_time 0
period_size 1024
buffer_size 4096
rate 44100
}
bindings {
0 0
1 1
}
}

pcm.!default {
type plug
slave.pcm "ossmix"
}

ctl.mixer0 {
type hw
card 0
}
 
Статус
Закрыто для дальнейших ответов.