我是音频编程的新手.我想创建一个能够播放并提供音量控制的小应用程序.我正在使用alsa-lib.
我想知道切换(ex.Master播放开关)的目的是什么,混音器元素中的枚举以及我应该为这些开关设置什么值.
请给我一些混音器设置教程以及alsa编程.
这将是我有史以来最贫穷的问题......
在一台旧的上网本上,我安装了一个更旧的Debian版本,并玩了一下.其中一个相当令人满意的结果是一个非常基本的MP3播放器(使用libmpg123),它集成了为一个小应用程序添加背景音乐做一些完全不同的事情.我越来越喜欢这个小小的解决方案.
在那个程序中,我通过一个简单的方式将解码后的音频(从mpg123_decode())/dev/audio转发fwrite().
这在上网本上运行良好.
现在,我开始明白这/dev/audio是OSS所做的事情,并且不再支持更新的(ALSA)机器.果然,我的笔记本电脑(运行当前的Linux Mint)没有这个设备.
显然我必须使用ALSA.在网上搜索,我发现了几个教程,他们几乎让我大吃一惊.模式,参数,功能,访问类型,样本格式,采样率,通道数,周期数,周期大小......我理解ALSA是雄心勃勃的强大API,但这不是我想要的(或者有时间去grok).我正在寻找的是如何播放输出mpg123_decode(我甚至不知道的格式,远远不是一个音频极客).
谁能给我一些关于需要做什么的提示?
TL;博士
如何让ALSA播放原始音频数据?
我目前正在使用高通芯片组学习android OS的音频域.我遇到过mixer_paths.xml文件.我一直在努力理解编写和修改文件的惯例.但我无法找到任何适当的文件或指南来解释所遵循的惯例.任何人都可以让我知道是否有任何此类文件可用或者简要解释遵循的惯例?
我想知道推荐使用的音频库是什么?
我正在尝试制作一个有助于调整乐器的小程序.(钢琴,吉他等).我读过有关ALSA和Marsyas音频库的文章.
我想这个想法是从麦克风中采样数据,对5-10ms的块进行分析(从我读过的内容).然后执行FFT以确定哪个频率包含最大峰值.
我有一个问题,我需要"模拟"麦克风输出.
数据将通过网络传输,解码为PCM,基本上需要写入麦克风 - 然后其他程序可以读取/记录/无论如何.
我一直在阅读alsa,但信息非常稀少.文件插件看起来很有前途 - 我正在考虑将命名管道作为"infile",然后我可以从我的应用程序传递数据.然而,我无法让它工作(vlc/audacity只是段错误).
pcm.testing {
type file
slave {
pcm {
type hw
card 0
device 0
}
}
infile "/dev/urandom"
format "raw"
}
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来做到这一点?有关alsa插件的任何建议(特别是文件插件)?
我需要在Android中使用AudioRecorder进行简单的录音和播放示例.我尝试使用MediaRecorder,它工作正常.
有关读取系统声级的最简单方法的任何线索是什么?
我打算用短的LED灯条制作一个均衡器,并将它们连接到Arduino或RaspberryPi上.我已经看到很多例子如何使用输入,麦克风等,但总体输出不是那么多.在这一点上,我不关心程序特定或系统范围,当我真正获得读数时,我很高兴.任何建议都会受到欢迎.
- 编辑 -
基于如何在python中从麦克风获取声音输入,并在运行中处理它?我将PCM_CAPTURE更改为PCM_PLAYBACK,这导致python说在输出/回放时无法读取.
我现在正在尝试创建一个环回设备,我的想法是将播放回送到单独的捕获并然后读取它但是到目前为止没有运气,我不知道这种方式是多么干净/干净.我无法想象这是要走的路.
我正在使用各种码头集装箱,它们是在Debian sid上建造的.这些图像缺乏/dev/snd和/dev/snd/seq,这非常有道理的,因为他们没有硬件音频卡.
我用来生成MIDI文件的几个软件需要这些音序器设备.它们不一定用于发送音频,但如果声音设备不存在,代码本身将在init中死亡.为了清楚起见,我不需要在docker中生成音频信号,而是我只需要存在这些信号以使其他软件满意.
到目前为止,我已经试过被无休止地安装各种ALSA包(alsa-utils,alsa-oss,等),并试图以modprobe我的出路,这一切没有运气.
在docker容器中,即使是虚拟的,有什么需要有效的音频设备呢?
所以我试图让我的linux服务器播放使用蓝牙从我的Android手机发送的音乐(linux机器是A2DP接收器,手机是源).到目前为止我所做的是:
但我听不到任何声音.此外,互联网上的大多数指南都假设Pulseaudio,我更喜欢使用ALSA.
我目前在/etc/asound.conf中有以下内容:
pcm.!default{
type bluetooth
profile "auto"
}
Run Code Online (Sandbox Code Playgroud)
我正在运行Bluez v4.99和Alsa v1.0.25.有任何想法吗?
我有一个小型的C++ Qt程序,它使用QAudioOutput实例发出声音.它使用Qt 4.8.5进行编译和运行.
但是,在Qt 5.0,5.1和5.2中,我的应用程序编译,但不起作用.我在QAudioOutput实例的构造函数运行时收到以下错误消息:
无法创建与pulseaudio上下文的连接.
此外,构造函数不返回,所以我的程序挂起.
我没有运行pulseaudio.ALSA工作正常,这是我的程序在使用Qt 4.8.5编译时使用的.
检查Qt5"plugins/audio"目录,那里只有"libqtmedia_pulse.so",其名称暗示它取决于pulseaudio.
我的问题:
alsa ×10
audio ×5
linux ×4
android ×2
c ×2
a2dp ×1
arduino ×1
audio-route ×1
audiorecord ×1
bluetooth ×1
c++ ×1
debian ×1
docker ×1
microphone ×1
python ×1
qt ×1
qt5 ×1
raspberry-pi ×1
real-time ×1
virtual ×1