Thread View: pl.comp.os.linux.programowanie
4 messages
4 total messages
Started by Borneq
Mon, 13 Jul 2015 05:06
Jak odczytać i zmienić systemową głośność?
Author: Borneq
Date: Mon, 13 Jul 2015 05:06
Date: Mon, 13 Jul 2015 05:06
6 lines
1305 bytes
1305 bytes
Mam program w Javie, który przez JNI będzie wołał DLL w C++ która będzie zmieniała systemową głośność. Dla Windows znalazłem to. Dla Linuxa jest informacja że jest biblioteka ALSA. Czy dołączyć ją jakoś do mojej DLL, czy też jest inny sposób? ALSA jest dość rozbudowana, a ja nie potrzebuję tyle, wystarczy getVolumne,setVolume i mute on/off. (choć być może kiedyś przyjdzie czas na mikrofon, balans lewy-prawy itd.)
Re: Jak odczytać i zmienić systemową głośność?
Author: Borneq
Date: Mon, 13 Jul 2015 06:31
Date: Mon, 13 Jul 2015 06:31
14 lines
1623 bytes
1623 bytes
W dniu 2015-07-13 o 07:06, Borneq pisze: > Mam program w Javie, który przez JNI będzie wołał DLL w C++ która będzie > zmieniała systemową głośność. Dla Windows znalazłem to. Dla Linuxa jest > informacja że jest biblioteka ALSA. Czy dołączyć ją jakoś do mojej DLL, Jest biblioteka Cross-Platform o nazwie PortAudio, tam jest funkcja: /* Px_OpenMixer() returns a mixer which will work with the given PortAudio audio device. Pass 0 as the index for the first (default) mixer. */ PxMixer *Px_OpenMixer( void *pa_stream, int i ); Tylko nie wiem, co za strumień trzeba podać, bo przy zmianie głośności nie potrzeba żadnego strumienia.
Re: Jak odczytać i zmienić systemową głośność?
Author: grapeli23
Date: Mon, 13 Jul 2015 11:17
Date: Mon, 13 Jul 2015 11:17
10 lines
1640 bytes
1640 bytes
Dnia 13.07.2015 Borneq <borneq@antyspam.hidden.pl> napisał/a: > Mam program w Javie, który przez JNI będzie wołał DLL w C++ która będzie > zmieniała systemową głośność. Dla Windows znalazłem to. Dla Linuxa jest > informacja że jest biblioteka ALSA. Czy dołączyć ją jakoś do mojej DLL, > czy też jest inny sposób? ALSA jest dość rozbudowana, a ja nie > potrzebuję tyle, wystarczy getVolumne,setVolume i mute on/off. > (choć być może kiedyś przyjdzie czas na mikrofon, balans lewy-prawy itd.) https://github.com/tinyalsa/tinyalsa
Re: Jak odczytać i zmienić systemową głośność?
Author: Pit
Date: Mon, 13 Jul 2015 14:30
Date: Mon, 13 Jul 2015 14:30
22 lines
2492 bytes
2492 bytes
Dnia 13.07.2015 Borneq <borneq@antyspam.hidden.pl> napisał/a: > Mam program w Javie, który przez JNI będzie wołał DLL w C++ która będzie > zmieniała systemową głośność. Dla Windows znalazłem to. Dla Linuxa jest > informacja że jest biblioteka ALSA. Czy dołączyć ją jakoś do mojej DLL, > czy też jest inny sposób? ALSA jest dość rozbudowana, a ja nie > potrzebuję tyle, wystarczy getVolumne,setVolume i mute on/off. > (choć być może kiedyś przyjdzie czas na mikrofon, balans lewy-prawy itd.) W DataLine gdy robisz getControl(_) aby otrzymać kontroler parametru miksera, to jako typ kontrolera można podać FloatControl.Type.MASTER_GAIN to daje możliwość regulowania "głównej głośności" ale uwaga, po pierwsze może być tak, że proces nie uzyska uprawnień do tego parametru (pod Linuxem rzecz jasna) a po drugie raczej nie powinno się dawać tego typu możliwości z programu. Po to jest "master_gain" w systemie aby użytkownik mógł sobie globalnie regulować głośność dźwięków z wszystkich aplikacji (lub wyłączyć dźwięk w ogóle) a nie po to aby mu jakaś pojedyncza aplikacja "broiła". Aplikacje uruchomione z SecurityManagerem (na przykład applety, aplikacje odpalane przez Java WebStart czy nawet taka standalone, ale z SecurityManagerem) domyślnie nie będą miały uprawnień do sterowania globalną głośnością (wyobrażasz sobie na przykłąd stronę internetową, na której jest applet w Javie, który daje "gałki w prawo" i odgrywa jakieś dźwięki mimo że je w mikserze Windowsa wyciszyłeś czy wręcz wyłączyłeś? :D)
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads