问题标签 [tinyalsa]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 如何在 /dev/snd 中添加 PCM 设备
目前在/dev/snd/下,我有以下设备
如何添加另一个设备(即 pcmC0D1p)?该系统运行 Android,目前使用微型 ALSA 进行音频。
linux - ALSA 配置 如何在 asound.conf 中结合 MMAP 仿真和 Ladspa 插件
我使用 rpi dac 在 Raspberry Pi 计算模块 ( Linux ) 上有一个工作正常的 PCM 输出和良好的声音。'aplay -l' 命令输出显示如下:
为了让音频完全正常工作,我必须将我的 /etc/asound.conf 文件更改为如下所示:
当我播放 .wav 文件时,输出听起来很棒,但它有点安静,而且 alsamixer 不允许使用此驱动程序控制音量。
我想获得更多的音量,所以我研究了 Ladspa 项目软件放大器插件。以下示例代码提高了普通 Pi 上 3.5 毫米插孔的音量:
我一直在阅读这里的文档:http: //alsa.opensrc.org/Asoundrc,但我正在努力理解如何结合 2 - 我想要 MMAP 仿真和放大。我怎样才能做到这一点?谢谢你。
android - 有没有办法通过 tinymix 命令捕获音频?
我正在尝试直接通过 USB 从移动设备捕获原始音频数据,那么是否有任何 tinymix 命令来捕获它?
android - tinyalsa sh: ./tinypcminfo: 没有这样的文件或目录
tinyalsa elf 无法在 android shell 上运行,有人知道它有什么问题吗?
我是安卓新手,:-)
这是我的步骤:
1. 将 tinyalsa 源代码下载到 ubuntu 10 vm,用 arm-linux-gnueabi-gcc 编译
2. adb push xx\tinypcminfo /data/local/tmp
3. adb shell -> cd /data/local/tmp ->chmod 777 tinypcminfo
4. ./tinypcminfo
5. 发生错误
android - 如何在android中停止使用tinycap录制?
我们正在使用 tinycap 在我们的 android 手机设备中自动执行一些脚本。
但是如何给出论据来阻止它呢?
喜欢tinycap -d 5 test.wav(5s)
谢谢。
c - tinyalsa:pcm_start 产生错误的文件编号错误
我正在尝试使用 tinyalsa 的准系统程序,但pcm_start
总是失败,返回-1
并设置errno
为9
( EBADF
,即错误的文件号)。在此之前的调用pcm_open
返回一个非空指针,但它设置errno
为22
.
似乎没有有关 tinyalsa 的文档,所以我无法理解我应该做什么。我的程序基于来自 alsa(不是 tinyalsa)的示例,并且我已经阅读了 tinyalsa 的头文件。任何人都可以提供任何指导吗?
(完整代码可在pastebin上找到。)
pcm_open
我推断from的前两个参数的值aplay --list-devices
,它输出:
(我在我的工作站上编译和运行它,而不是在 Android 上。)
audio - snd_ctl_find_numid+0x38/0x6c 的内核崩溃
在访问 snd_kcontrol 时,我偶尔会在 4.4 内核中的 snd_ctl_find_numid+0x38/0x6c 处获得 NULL 指针取消引用。该问题偶尔会被复制。任何人都可以提供解决问题的任何指示。下面是堆栈跟踪:
观察到问题时没有特定的用例。有时在启动过程中会出现问题,有时在音频用例中会出现问题。
android - QAudioDeviceInfo::availableDevices() 不会返回所有可用设备,而是仅返回实际存在的三个音频输出设备中的一个。为什么?
问题:
1. QAudioDeviceInfo::availableDevices(QAudio::AudioOutput)) 从三个音频输出设备中只返回一个音频设备(默认设备)。为什么? 共有三个音频输出设备可用,在使用 ALSA 设备检查时,通过命令行使用“tinyplay”实用程序验证了输出。但是 QAudioDeviceInfo::availableDevices() 不返回这三个设备,它只返回一个设备(默认)。
注意: 使用 qt 示例中的示例代码进行音频输出。仅返回一台设备。
2. 如何将特定的 ALSA 设备(例如:card0, device 0)设置为默认音频设备? 在这种情况下,QAudioDeviceInfo::defaultOutputDevice() 设置为声卡 2 上的设备 0。
请参阅下面的详细资料........
系统设置:
目标板:iMX6Q Sabre AI
操作系统:安卓M6
Qt:QT 5.8
安卓 NDK r10
安卓 SDK:25.2.5
可用声卡:
root@sabreauto_6q:/ # cat /proc/asound/cards
0 [cs42888audio]:cs42888-audio-cs42888-audio cs42888-audio 1 [imxspdif]:imx-spdif-imx-spdif imx-spdif 2 [imxhdmisoc]:imx-hdmi-soc-imx-hdmi-soc imx-hdmi-社会
可用的声音设备:
root@sabreauto_6q:/ # cat /proc/asound/card0/ id pcm0c/ pcm0p/ pcm1c/ pcm1p/
root@sabreauto_6q:/ # cat /proc/asound/card1/ id pcm0c/
root@sabreauto_6q:/ # cat /proc/asound/card2/ id pcm0p/
注意:共有 3 个声卡和 3 个音频(ALSA)输出设备。
尝试测试音频输出设备:
使用 tinyplay 实用程序声音输出验证整个音频输出驱动程序。
tinyplay test.wav -D 0 -d 0 --> 声音验证。注意:声卡 0 上的 ALSA 设备 0 正在运行以产生声音。
tinyplay test.wav -D 0 -d 1 --> 声音已验证。
tinyplay test.wav -D 2 -d 0 --> 声音已验证。
audio - tinyalsa 时序和 PCM_MMAP 的问题
我们在使用 Qualcomm PM8916 编解码器的 ARM64 Snapdragon 上。目标是以 48000 样本/秒的速度对单个通道进行采样,并使用高分辨率时间戳。tinyalsa 文档坚持我们必须使用 PCM_MMAP。当我们这样做时,pcm_open() 不会抱怨,但 pcm_readi() 失败 errno:22 ioctl() 中的参数无效。
我认为相关的另一个症状是,当以这种形式调用 pcm_open 时(没有 PCM_MMAP):
音频非常流畅(周期=256),与文档相反,pcm_get_htimestamp() 返回值很好。不确定时间有多准确,但明天我将注入 GPS 1PPS 并进行标准测试以弄清楚这一点。但是当我按照说明使用 PCM_MMAP 时,例如:
或者
如上所述,读取失败。我还没有尝试过所有可能的组合,但这即将到来。奇怪的是,每当指定 PCM_MMAP 时,时间戳
返回变得毫无意义,并且 tv_sec 包含大约 4917 或 5013 的值,而不是合理的 time_t。我很想得出结论, tv_sec 值是自启动以来经过的时间,除了时间戳发生在启动后的几秒钟内。
哦,另一个细节。PCM_NONBLOCK 选项在我一直使用的 sdk 提供的 tinyalsa 版本中无法识别。所以我 git 克隆了 tinyalsa,构建了一个静态库,并升级到了最新最好的。我对 PCM_MMAP 的问题在两个版本中都存在。这一点,再加上寻找有同样问题的人的时间在很大程度上是失败的事实,让我相信这是关于我们的新产品而不是库的问题。
关于下一步该往哪里看有什么想法吗?
谢谢!
今天早上确认 pcm_readi() 中的 ioctl 正在接收正确的文件描述符 (4) 和周期大小 (256)。没有其他可能无效的论点
android - pcm_open 和 pcm_is_ready 调用失败,因为 pcm->fd 返回负整数
在 Android 9.0 中尝试 tinyalsa 时 pcm_is_ready 调用失败,因为 pcm->fd < 0。这是因为 pcm->fd = open(fn, O_RDWR|O_NONBLOCK); 公开通话失败。而且我已将 selinux 设置为允许的。并给/dev/snd chmod 777 -R 那么如何在android中解决这个问题???
我已将 selinux 设置为允许的。并将 chmod 777 -R 赋予 /dev/snd