草庐IT

alsa-lib

全部标签

linux - alsa - 内存泄漏?

我一直在追踪内存泄漏(由“valgrind--leak-check=yes”报告),它似乎来自ALSA。这段代码已经在自由世界中发布了一段时间,所以我猜这是我做错了什么。#include#include#includeintmain(intargc,char*argv[]){snd_ctl_t*handle;interr=snd_ctl_open(&handle,"hw:1",0);printf("snd_ctl_open:%d\n",err);err=snd_ctl_close(handle);printf("snd_ctl_close:%d\n",err);}输出看起来像这样:[r

c - ALSA:扬声器周期大小与麦克风的关系

我有一个带有麦克风和扬声器的音频session设备。麦克风和扬声器都具有相同的采样率,由snd_pcm_hw_params_set_rate_near()设置为8000Hz。我是否需要为两者设置相同的周期大小和周期数(对于两个这样的设备相互通信)?或者我可以为扬声器选择不同于为麦克风配置的周期/周期大小吗?我如何决定使用哪个周期和周期大小?我正在使用snd_pcm_hw_params_set_period_size_near()和snd_pcm_hw_params_set_periods_near()API来设置扬声器和麦克风的周期大小和周期。(我是ALSA的新手)。

php - 未知 : Failed opening required '0ff' (include_path ='.:/tmp:/usr/lib/php:/usr/local/lib/php' ) in Unknown on line 0

我今天收到以下错误。我没有对我的PHP程序进行任何更改。Warning:Unknown:failedtoopenstream:NosuchfileordirectoryinUnknownonline0Warning:Unknown:failedtoopenstream:NosuchfileordirectoryinUnknownonline0Fatalerror:Unknown:Failedopeningrequired'0ff'(include_path='.:/tmp:/usr/lib/php:/usr/local/lib/php')inUnknownonline0....几个小时

linux - PDF Lib 在 Linux 服务器上安装失败。使用 pecl 安装 pdflib

我试图在我的服务器上安装pdflib并收到错误:configure:error:pdflib.hnotfound!Checkthepathpassedto--with-pdflib=.PATHshouldbetheinstallprefixdirectory.ERROR:/root/tmp/pear/pdflib/configure--with-pdflib=/usr/local'failed我在终端输入以下内容:pecl安装pdflibpathtopdflibinstallation?:/usr/本地 最佳答案 我是这样解决的:下

linux - ALSA 时间戳函数返回什么以及结果如何相互关联?

ALSA中有几个“高分辨率”时间戳函数:snd_pcm_status_get_trigger_htstampsnd_pcm_status_get_audio_htstampsnd_pcm_status_get_driver_htstampsnd_pcm_status_get_htstamp我想了解结果函数代表的时间点。我目前的理解是trigger_htstamp表示流开始/停止/暂停的时间。snd_pcm_status_get_trigger_htstamp返回一个常量值,当我将audio_htstamp添加到该值时,结果非常接近当前系统时间。audio_htstamp在我的系统上似乎

linux - strftime_l lib64/libc.so.6 处的 SIGSEGV 段错误

我正在将pro*c代码从UNIX移植到LINUX。代码已成功编译并创建可执行文件。但是在运行时它会引发段错误。我一步一步调试代码,下面是GDB调试的输出。Breakpoint4at0x3b19690f50(gdb)n525strftime(buf,MAX_STRING_LEN,"%d/%b/%Y:%H:%M:%S",dummy_time);(gdb)nBreakpoint4,0x0000003b19690f50instrftime()from/lib64/libc.so.6(gdb)nSinglesteppinguntilexitfromfunctionstrftime,whichha

alsa - 观察 ALSA/Pulseaudio 中的音量变化

如何在默认声卡上监听主channel的音量变化?我希望通过dbus或回调或其他方式收到音量已更改的通知。我已经尝试查看ALSA和PulseAudioAPI,它们似乎只允许您设置和获取音量,但不能收听音量变化。任何编程语言都可以。 最佳答案 编辑:在第二个示例中,当音量低于5%或高于100%时,不会为我生成事件。据我所知,第一个示例运行完美。pactlsubscribe将在音量变化时打印出有关接收器的数据。我现在正在做的是将输出通过管道传输到一个将运行脚本的小型C程序。运行.sh:pactlsubscribe|grep--line-b

linux - 推荐哪一个: using static lib vs dynamic lib (shared object)

我正在使用Linux中的应用程序。它同时支持静态和动态(.so)版本从性能的角度来看,用户应该使用哪个版本?该应用程序执行需要数小时CPU时间的计算任务。使用一个库优于另一个库的任何其他优势?谢谢 最佳答案 从纯性能的角度来看:共享对象被编译为PIC(位置无关代码),理论上在某些架构(包括x86)上可能比普通代码效率稍低。但是,我认为这不会产生任何真正的影响。从任何其他点使用共享对象,它比静态库有太多的优点,它只是更好的选择。 关于linux-推荐哪一个:usingstaticlibvs

linux - 找到我可以用 ALSA 玩 PCM 的所有设备

我使用ALSA来播放PCM样本。我用这个函数打开PCM流:intsnd_pcm_open(snd_pcm_t**pcmp,constchar*name,snd_pcm_stream_tstream,intmode);我目前使用“默认”作为名称参数。我希望能够选择其他设备。我无法理解的是如何确定其他可用设备的名称。我将一个USB麦克风连接到我的系统,播放器和混音器似乎检测到新设备。我如何确定该设备的名称?是否有任何ALSA函数可以获取可用设备及其各自名称的列表? 最佳答案 我想你可以使用snd_device_name_hint用于枚举

linux - docker build error (apt-utils is not installed, cannot remove '/var/lib/apt/lists' : Directory not empty)

我正在尝试使用以下命令构建一个docker镜像dockerbuild-tblog.和Dockerfile:FROMruby:2.4RUNapt-getupdate-yqq\&&apt-getinstall-yqq--no-install-recommends\postgresql-client\&&rm-rf/var/lib/apt/listsWORKDIR/usr/src/appCOPYGemfile*.RUNbundleinstallCOPY..EXPOSE3000CMDrailsserver-b0.0.0.0我得到的结果如下:Step1:FROMruby:2.4--->ef296