Temat: Audio - odtwarzanie kilku plików na raz
Czy takie odtwarzanie (np. mix zapowiedzi na tle muzyki) załatwia alsa + madplay?
Normalnie madplay tego nie zrobi (zajęte urządzenie audio).
Nie jesteś zalogowany. Proszę się zalogować lub zarejestrować.
eko.one.pl → Oprogramowanie / Software → Audio - odtwarzanie kilku plików na raz
Strony 1
Zaloguj się lub zarejestruj by napisać odpowiedź
Czy takie odtwarzanie (np. mix zapowiedzi na tle muzyki) załatwia alsa + madplay?
Normalnie madplay tego nie zrobi (zajęte urządzenie audio).
Alsa + odpowiednia konfiguracja (dmix)
Doinstalowałem alsa-utils, działa alsamixer, mam /dev/mixer ... madplay dalej działa po staremu - na pewno da się go zmusić do miksowania? Żeby zainstalować MPD muszę wyrzucić coś i przekompliować bo już mi się nie zmieści (nie potrzebuję MPD - madplay wystarczy w zupełności, byle by się dało uruchomić więcej niż jeden).
To nie madplay zmuszasz do tego, a alsę...
To jak to zrobić? Link do asound.conf z poradnika jest nieaktualny. Próbowałem na ślepo różne znalezione przykłady.
Nie rozumiem kompletnie jak to ma działać - bo skoro madplay wysyła do /dev/dsp i najwyraźniej może tam wysyłać tylko jeden na raz, to co ma do tego alsa? No chyba, że po zainstalowaniu alsy to ona jest /dev/dsp... ale u mnie najwidoczniej nie jest.
Edit: aplay można uruchomić dwa razy i odtwarza... niestety co drugie uruchomienie trzeszczy (problem znany, ale znane rozwiązanie nie pomaga).
Przekompilować madplay ze wsparciem dla alsy lub zrób na alsie emulator oss i wtedy na dmixa. W sumie to opisywali to jeszcze w czasach prehistorycznych kiedy alsa wschodziła do linuksa.
No to troszkę mnie wprowadziłeś w błąd bo teraz wyszło, że madplay jednak nie działa z alsą.
Uporałem się z tym trzeszczeniem i aplay mi działa tak jak chciałem (niestety tylko wav-y a nie mp3). Nie wiem teraz w którą stronę pójść - czy zwolnić miejsce na mpd... ale mpd-em da się grać klika na raz?, czy walczyć z madplay+alsa (oss?), czy w ogóle przejść na wav-y.
Nie działa - bo domyślnie nie jest z nią kompilowany. A nie sądzę żebyś samodzielnie kompilował madplay tylko zainstalowałeś sobie z repo.
Akurat było odwrotnie: madplay kompilowałem (zaznaczyłem do kompilacji w menuconfig), natomiast alsę doinstalowałem i skonfigurowałem (zgodnie z Twoją sugestią).
1.Czy MPD umożliwia miksowanie (granie kilku plików na raz)?
2.Jak skompilować madplay z alsą - po prostu zaznaczając alsa-utils i madplay w menucinfig, czy trzeba grzebać w makefile madplaya?
Grzebać w makefile - pisałem, domyślnie nie jest z tym kompilowany.
Nie skompiluje się.
Zmieniłem w makefile --without-alsa na --with-alsa, dopisałem też w DEPENDS:+alsa-lib.
mv -f .deps/audio_wave.Tpo .deps/audio_wave.Po
mips-openwrt-linux-uclibc-gcc -DHAVE_CONFIG_H -I. -Iintl -DLOCALEDIR=\"/usr/share/locale\" -I/home/mir/openwrt/trunk/staging_dir/target-mips_34kc_uClibc-0.9.33.2/usr/include -I/home/mir/openwrt/trunk/staging_dir/target-mips_34kc_uClibc-0.9.33.2/include -I/home/mir/openwrt/trunk/staging_dir/toolchain-mips_34kc_gcc-4.6-linaro_uClibc-0.9.33.2/usr/include -I/home/mir/openwrt/trunk/staging_dir/toolchain-mips_34kc_gcc-4.6-linaro_uClibc-0.9.33.2/include -Wall -pipe -Wno-error=unused-but-set-variable -mno-branch-likely -mips32r2 -mtune=34kc -msoft-float -fhonour-copts -fomit-frame-pointer -MT audio_alsa.o -MD -MP -MF .deps/audio_alsa.Tpo -c -o audio_alsa.o audio_alsa.c
audio_alsa.c: In function 'play':
audio_alsa.c:288:4: warning: pointer targets in passing argument 1 of 'audio_pcm' differ in signedness [-Wpointer-sign]
audio_alsa.c:288:4: note: expected 'unsigned char *' but argument is of type 'char *'
mv -f .deps/audio_alsa.Tpo .deps/audio_alsa.Po
/bin/bash ./libtool --tag=CC --mode=link mips-openwrt-linux-uclibc-gcc -Wall -pipe -Wno-error=unused-but-set-variable -mno-branch-likely -mips32r2 -mtune=34kc -msoft-float -fhonour-copts -fomit-frame-pointer -L/home/mir/openwrt/trunk/staging_dir/target-mips_34kc_uClibc-0.9.33.2/usr/lib -L/home/mir/openwrt/trunk/staging_dir/target-mips_34kc_uClibc-0.9.33.2/lib -L/home/mir/openwrt/trunk/staging_dir/toolchain-mips_34kc_gcc-4.6-linaro_uClibc-0.9.33.2/usr/lib -L/home/mir/openwrt/trunk/staging_dir/toolchain-mips_34kc_gcc-4.6-linaro_uClibc-0.9.33.2/lib -o madplay madplay.o getopt.o getopt1.o version.o resample.o filter.o tag.o crc.o rgain.o player.o audio.o audio_aiff.o audio_cdda.o audio_hex.o audio_null.o audio_raw.o audio_snd.o audio_wave.o audio_alsa.o -lasound -lmad -lid3tag -lm -lz
OpenWrt-libtool: link: mips-openwrt-linux-uclibc-gcc -Wall -pipe -Wno-error=unused-but-set-variable -mno-branch-likely -mips32r2 -mtune=34kc -msoft-float -fhonour-copts -fomit-frame-pointer -o madplay madplay.o getopt.o getopt1.o version.o resample.o filter.o tag.o crc.o rgain.o player.o audio.o audio_aiff.o audio_cdda.o audio_hex.o audio_null.o audio_raw.o audio_snd.o audio_wave.o audio_alsa.o -L/home/mir/openwrt/trunk/staging_dir/target-mips_34kc_uClibc-0.9.33.2/usr/lib -L/home/mir/openwrt/trunk/staging_dir/target-mips_34kc_uClibc-0.9.33.2/lib -L/home/mir/openwrt/trunk/staging_dir/toolchain-mips_34kc_gcc-4.6-linaro_uClibc-0.9.33.2/usr/lib -L/home/mir/openwrt/trunk/staging_dir/toolchain-mips_34kc_gcc-4.6-linaro_uClibc-0.9.33.2/lib -lasound -lmad -lid3tag -lm -lz
audio_alsa.o: In function `set_hwparams':
audio_alsa.c:(.text+0x148): undefined reference to `snd_pcm_hw_params_set_rate_near@ALSA_0.9'
audio_alsa.c:(.text+0x200): undefined reference to `snd_pcm_hw_params_set_buffer_time_near@ALSA_0.9'
audio_alsa.c:(.text+0x258): undefined reference to `snd_pcm_hw_params_get_buffer_size@ALSA_0.9'
audio_alsa.c:(.text+0x28c): undefined reference to `snd_pcm_hw_params_set_period_time_near@ALSA_0.9'
audio_alsa.c:(.text+0x2ec): undefined reference to `snd_pcm_hw_params_get_period_size@ALSA_0.9'
collect2: ld returned 1 exit status
make[6]: *** [madplay] Error 1
make[6]: Leaving directory `/home/mir/openwrt/trunk/build_dir/target-mips_34kc_uClibc-0.9.33.2/madplay-0.15.2b'
make[5]: *** [all-recursive] Error 1
make[5]: Leaving directory `/home/mir/openwrt/trunk/build_dir/target-mips_34kc_uClibc-0.9.33.2/madplay-0.15.2b'
make[4]: *** [all] Error 2
make[4]: Leaving directory `/home/mir/openwrt/trunk/build_dir/target-mips_34kc_uClibc-0.9.33.2/madplay-0.15.2b'
make[3]: *** [/home/mir/openwrt/trunk/build_dir/target-mips_34kc_uClibc-0.9.33.2/madplay-0.15.2b/.built] Error 2
make[3]: Leaving directory `/home/mir/openwrt/trunk/feeds/packages/sound/madplay'
make[2]: *** [package/feeds/packages/madplay/compile] Error 2
make[2]: Leaving directory `/home/mir/openwrt/trunk'
make[1]: *** [/home/mir/openwrt/trunk/staging_dir/target-mips_34kc_uClibc-0.9.33.2/stamp/.package_compile] Error 2
make[1]: Leaving directory `/home/mir/openwrt/trunk'
make: *** [world] Błąd 2Google podpowiada, że jest to problem nowego api alsy - madplay pisany jest pod stary, więc na razie chyba pozamiatane?
Na pewno zrobiłeś make oldconfig i skompilowałeś alsa-lib? Bo te funkcje właśnie w alsie są.
Oldconfig przywraca config.old ? Jeśli tak, to nie rozumiem co by to miało dać. Jeśli pytasz czy przywracałem config do ustawień "fabrycznych" to wydaje mi się, że takie przywrócenie robi się przy każdej zmianie platformy - w każdym razie zaznaczyłem od nowa kmod-sound-core, kmod-usb-audio, alsa-utils (alsa-lib zaznacza się samo) i madplay + zmieniony makefile i nie kompiluje się. Spróbuję jeszcze zrobić to na AA, bo do tej pory próbowałem na trunk-u.
Nie, nie przywraca. Aktualizuje zależności.
Strony 1
Zaloguj się lub zarejestruj by napisać odpowiedź
eko.one.pl → Oprogramowanie / Software → Audio - odtwarzanie kilku plików na raz
Forum oparte o PunBB, wspierane przez Informer Technologies, Inc