我想把我的Linux机箱中的音频传输到安卓设备上,尽可能地减少延迟,所以我考虑在PulseAudio和module-opensl-sink (found 这里)一起使用。我不想用PA代替AudioFlinger,因为我想使用它的效果API。
我已经设法用谷歌的Android编译了PulseAudio,但是每次我尝试启动它时,它都会抛出一个错误,不管我试图加载哪个模块。
$ ./pulseaudio -C --loglevel=4
W: [pulseaudio] caps.c: Normally all extra capabilities would be dropped now, but that's impossible because PulseAudio was built without capabilities support.
I: [pulseaudio] main.c: setrlimit(RLIMIT_RTPRIO, (9, 9)) failed: Operation not permitted
D: [pulseaudio] core-util.c: setpriority() worked.
I: [pulseaudio] core-util.c: Successfully gained nice level -11.
I: [pulseaudio] main.c: This is PulseAudio 5.0-121-g38c5d-dirty
D: [pulseaudio] main.c: Compilation host: arm-unknown-linux-androideabi
D: [pulseaudio] main.c: Compilation CFLAGS: -mfpu=neon -mfloat-abi=softfp -Wall -W -Wextra -pipe -Wno-long-long -Wno-overlength-strings -Wunsafe-loop-optimizations -Wundef -Wformat=2 -Wlogical-op -Wsign-compare -Wformat-security -Wmissing-include-dirs -Wformat-nonliteral -Wpointer-arith -Winit-self -Wdeclaration-after-statement -Wfloat-equal -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wmissing-noreturn -Wshadow -Wendif-labels -Wcast-align -Wstrict-aliasing -Wwrite-strings -Wno-unused-parameter -ffast-math -fno-common -fdiagnostics-show-option
D: [pulseaudio] main.c: Running on host: Linux armv7l 3.4.0-cyanogenmod-g8a32cd7 #1 SMP PREEMPT Sun Jun 8 19:40:15 PDT 2014
D: [pulseaudio] main.c: Found 4 CPUs.
I: [pulseaudio] main.c: Page size is 4096 bytes
D: [pulseaudio] main.c: Compiled with Valgrind support: no
D: [pulseaudio] main.c: Running in valgrind mode: no
D: [pulseaudio] main.c: Running in VM: no
D: [pulseaudio] main.c: Optimized build: no
D: [pulseaudio] main.c: FASTPATH defined, only fast path asserts disabled.
I: [pulseaudio] main.c: Machine ID is localhost.
I: [pulseaudio] main.c: Using runtime directory /data/data/jackpal.androidterm/app_HOME/.config/pulse/localhost-runtime.
I: [pulseaudio] main.c: Using state directory /data/data/jackpal.androidterm/app_HOME/.config/pulse.
I: [pulseaudio] main.c: Using modules directory /data/local/pa/lib/pulse-5.0/modules.
I: [pulseaudio] main.c: Running in system mode: no
I: [pulseaudio] main.c: Fresh high-resolution timers available! Bon appetit!
W: [pulseaudio] core.c: failed to allocate shared memory pool. Falling back to a normal memory pool.
D: [pulseaudio] memblock.c: Using private memory pool with 1024 slots of size 64.0 KiB each, total size is 64.0 MiB, maximum usable slot size is 65496
I: [pulseaudio] cpu-arm.c: CPU flags: V6 V7 VFP EDSP NEON VFPV3
I: [pulseaudio] sconv_neon.c: Initialising ARM NEON optimized conversions.
I: [pulseaudio] mix_neon.c: Initialising ARM NEON optimized mixing functions.
I: [pulseaudio] remap_neon.c: Initialising ARM NEON optimized remappers.
E: [pulseaudio] module.c: Failed to open module "module-cli".
E: [pulseaudio] main.c: Module load failed.
E: [pulseaudio] main.c: Failed to initialize daemon.
I: [pulseaudio] main.c: Daemon terminated.我用以下参数配置了PA:
./configure --prefix="/data/local/pa" --host arm-linux-androideabi --enable-neon-opt --with-sysroot='/data/local/pa' --without-caps --disable-shared --enable-static --disable-avahi --disable-alsa --disable-jack --disable-gconf --disable-esound --disable-openssl --disable-dbus --disable-glib2 --disable-orc --disable-adrian-aec --disable-rpath --enable-static-bins --disable-ipv6 --enable-force-preopen为什么它不能找到这些模块,即使它报告正确的模块目录?
发布于 2014-06-15 16:13:58
PulseAudio中的一个bug导致模块构建错误(作为静态库),因此无法加载它们。)在没有--disable-shared --enable-static --enable-static-bins的情况下重新配置使其工作:)
发布于 2018-11-07 15:10:01
你可以使用我的服务器版本。https://github.com/twaik/pulseaudio-sles-ndk。它被决定使用Android构建。
https://unix.stackexchange.com/questions/137169
复制相似问题