【问题标题】:Which library contains pulseaudio pa_simple_new function哪个库包含pulseaudio pa_simple_new函数
【发布时间】:2015-09-18 19:41:28
【问题描述】:

我正在编写一个 java 应用程序。它是一个 mp3 播放器。我想使用 pulseaudio 服务器,因为我的蓝牙扬声器可以通过 pulseaudio 访问。

我使用简单的 pulseaudio 接口编写了一个共享库。

现在我得到了错误

/home/rainer/NetBeansProjects/audioserver/src/main/native/audioserver.so:未定义符号:pa_simple_new

我必须将哪个库添加到我的 java 程序中才能访问符号 pa_simple_new ?

【问题讨论】:

    标签: java-native-interface shared-libraries pulseaudio


    【解决方案1】:

    搜索后,我发现库 libpulse-simple.so 包含这些函数。执行时有显示

    nm -D libpulse-simple.so
    

    我无法直接调用这些函数,因为我在 JNI 环境中调用了这些函数。

    我必须使用函数 dlopen 和 dlsym 来访问这些函数:

    void* h = dlopen("libpulse-simple.so", RTLD_LAZY|RTLD_GLOBAL);
    

      ptr_pa_simple_new = (pa_simple* (*)(const char *,const char *,pa_stream_direction_t,const char *,const char *,const pa_sample_spec *,const pa_channel_map *,const pa_buffer_attr *,int *))dlsym(h,"pa_simple_new");
      ptr_pa_simple_free = (void (*)(pa_simple *))dlsym(h,"pa_simple_free");
      ptr_pa_simple_write = (int (*)(pa_simple *, const void *, size_t, int *))dlsym(h,"pa_simple_write");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-09
      • 1970-01-01
      • 2022-07-07
      • 2023-02-11
      • 2017-06-13
      • 2017-08-14
      • 2010-10-23
      • 2011-07-08
      相关资源
      最近更新 更多