Linux ALSA音频和YouTube
我想播放youtube视频,并通过编程将firefox的音频输出到特定的声卡 我想我会做一些类似firefox的事情| aplay-D hw:x,y. 收益率: 播放原始数据“标准数据”:无符号8位,速率8000 Hz,单声道 aplay:集合参数:1059:样本格式不可用 可用格式: -S16_LE 正在尝试Linux ALSA音频和YouTube,linux,flash,audio,youtube,alsa,Linux,Flash,Audio,Youtube,Alsa,我想播放youtube视频,并通过编程将firefox的音频输出到特定的声卡 我想我会做一些类似firefox的事情| aplay-D hw:x,y. 收益率: 播放原始数据“标准数据”:无符号8位,速率8000 Hz,单声道 aplay:集合参数:1059:样本格式不可用 可用格式: -S16_LE 正在尝试firefox | aplay-dHW:1,0-fs16_LE-c2 播放原始数据“标准输入”:有符号16位小尾端,速率8000 Hz,立体声 警告:速率不准确(请求=8000Hz,got
firefox | aplay-dHW:1,0-fs16_LE-c2
播放原始数据“标准输入”:有符号16位小尾端,速率8000 Hz,立体声
警告:速率不准确(请求=8000Hz,got=44100Hz)
请试试这个插件
最后,firefox | aplay-D plughw:1,0-f S16_LE-c2
播放原始数据“标准输入”:有符号16位小尾端,速率8000 Hz,立体声
命令行显示它工作正常,但音频来自hw:0,0(默认值)
我需要自己制作插件吗?
或者我需要强制alsa采用44100Hz
另外,我拒绝使用pulse,因为内存泄漏错误使它经常崩溃。我很确定flash总是使用默认的声卡,所以您需要更改
pcm.default
。您可以通过编辑~/.asoundrc
并添加以下内容来完成此操作:
pcm.!default {
type hw
card 0
device 2
}
当然,这会影响到所有的应用程序,但我相信也可以设置ALSA\u CONFIG\u PATH
(在环境中)来指定不同的文件,这样你就可以只为Firefox这样做
指示有ALSA_PCM_卡
和ALSA_卡
环境变量也可以工作
这些变量实际上可以工作,因为它们是/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
}
}
}
因此,您应该能够做到这一点:
ALSA_PCM_CARD=1 ALSA_PCM_DEVICE=3 firefox
使用系统中相应的卡和设备编号。当然,您也可以将自己的环境变量(或其他条件检查)添加到ALSA配置中。Flash使用自己的输出配置,独立于Firefox。在运行浏览器之前定义FLASH\u ALSA\u设备,它会告诉FLASH要使用什么ALSA PCM而不是默认值。这很好。我无法让environmental env正常工作,但这似乎相当于在打开firefox之前以编程方式更改.asoundrc文件。我还想更确定的是,firefox不能播放任何非“默认”的内容我发现很难相信我不能把这些信息传达给其他人device@cyrusv:声音数据不会传输到标准输出,因此您无法在任何地方对其进行管道传输。