cyr*_*usv 2 linux youtube flash audio alsa
我想播放youtube视频,并以编程方式将firefox的音频指向特定的声卡.
我想我会做像firefox | aplay -D hw:x,y.
Yields 这样的事情:
播放原始数据'stdin':无符号8位,速率8000 Hz,单声道播放:set_params:1059:样本格式不可用可用格式: - S16_LE
试 firefox | aplay -D hw:1,0 -f S16_LE -c 2
播放原始数据'stdin':签名16位Little Endian,速率8000 Hz,立体声警告:速率不准确(请求= 8000Hz,得到= 44100Hz)请尝试插件插件
最后, firefox | aplay -D plughw:1,0 -f S16_LE -c 2
播放原始数据'stdin':签名16位Little Endian,速率8000 Hz,立体声
命令行表明它有效,但音频来自hw:0,0(默认值).
我需要制作自己的插件吗?或者我需要强制alsa采取44100Hz?
此外,我拒绝使用脉冲,因为内存泄漏错误使它经常崩溃.
我很确定flash总是使用默认声卡,所以你需要改变pcm.default.您可以通过编辑~/.asoundrc和添加以下内容来完成此操作:
pcm.!default {
type hw
card 0
device 2
}
Run Code Online (Sandbox Code Playgroud)
当然,这会影响所有应用程序,但我相信也可以设置ALSA_CONFIG_PATH(在环境中)指定不同的文件,所以你可以只为Firefox做.
该ALSA FAQ表示有ALSA_PCM_CARD和ALSA_CARD可能工作,以及环境变量.
这些变量实际上是有效的,因为它们是默认配置的一部分/usr/share/alsa/alsa.conf:
@args.CARD {
type string
default {
@func getenv
vars [
ALSA_PCM_CARD
ALSA_CARD
]
default {
@func refer
name defaults.pcm.card
}
}
}
Run Code Online (Sandbox Code Playgroud)
所以,你应该能够做到这一点:
ALSA_PCM_CARD=1 ALSA_PCM_DEVICE=3 firefox
Run Code Online (Sandbox Code Playgroud)
使用系统中相应的卡和设备编号.或者您当然可以将自己的环境变量(或其他条件检查)添加到ALSA配置中.
| 归档时间: |
|
| 查看次数: |
7751 次 |
| 最近记录: |