在Raspberry Pi的Scratch中,发现了一种利用USB网络摄像头的方法!
我想在树莓派的Scratch中进行录音/播放!
树莓派班的孩子们喜欢玩Scratch、Sonic Pi、Minecraft等等,但一直想在Scratch中录音/播放音频,却始终未能实现。我知道可以插入USB声卡并连接麦克风来实现,但我不知道哪个选择更好。
USB网络摄像头好不好?
由于想要拍摄照片,所以需要相机。但是,树莓派专用相机价格昂贵,而且线缆脆弱,所以不考虑了。噢,与其买声卡和麦克风,还不如买USB网络摄像头便宜。而且,还可以录音呢。一举两得。总之,先买了试试看,但是总是抽不出时间来。
https://www.logicool.co.jp/ja-jp/product/hd-webcam-c270
https://www.logicool.co.jp/ja-jp/product/hd-webcam-c310
在使用标准音频输出时,通过USB网络摄像头进行录音是否困难?
最近开始研究音频合成和语音识别中的ALSA相关内容,并且用USB网络摄像头作为麦克风效果不错。因此,我决定认真着手解决Scratch的问题。
然而,在不停地搜寻互联网上之后,我并没有找到一个使用USB网络摄像头同时录音并使用标准音频输出的例子。我跟Raspberry Pi基金会正在为Raspberry Pi上的Scratch进行大量维护/修改的Tim Rowledge先生进行了交流,但是在设置ALSA时他似乎陷入了困惑!在论坛等地方,似乎全世界的人都遇到这个问题?
所以,既然Scratch和Squeak都是开源的,你可以随意使用。当听到这句话时,我进入了深深的ALSA配置森林。。。。。。我以为我完了,要遇难了。但是,想不到我成功了!
ALSA的神秘配置
将默认的“播放”设为默认音频输出,保持其为0号声卡(ALSA术语),将USB网络摄像头的麦克风设为默认录音设备,并指定为1号声卡,这是一个巧妙的组合。没有必要特别设置控制选项。而且,也不需要常见的交换驱动程序加载顺序的策略。
Scratch在审视系统的默认输入输出。因此,在这种情况下,需要使用type asym的组合技巧。
用nano命令编辑~/.asoundrc文件。
pcm.!default {
type asym
playback.pcm {
type hw
card 0
}
capture.pcm {
type hw
card 1
}
}
ctl.!default {
type hw
card 0
}
这个文件可以自动重新生成,而且在某些环境下,它会以一种奇怪的方式自动追加一个模板到你精心编写的设置中。在这种情况下,通过使用chmod 444指令可以确保pi用户无法修改它。(2018-1-30补充:type asm被更改为type hw,导致出现了一些奇怪的行为。原因不明,可能是因为之前的环境中没有执行chmod 444指令。)
在终端上运行 Alsa Mixer,调整音量后,耶!可以录音了。
USBウェブカメラで写真も撮りたい。
さて、こちらの方が先にできていました。もしかすると何もしないでも使えていたかも。Scratchでコスチュームのタブを開くと、なんと [カメラ]ボタン出現。新しいコスチュームとして撮った写真を使えます。
还有一种用法是,在脚本中先通过发送[( gpioserveron )]来启动GPIO服务器,然后通过发送[( photo )]块来拍摄照片的方法。
在树莓派基金会的页面上也有解释。”Scratch GPIO”
https://www.raspberrypi.org/documentation/usage/gpio/scratch1/README.md
当然,这个页面也有Tim Rowledge先生的贡献。
(追記:2019-02-20)
除了阻止发送 [(photo)] 这样的块之外,还可以指定发送 [(photo640@480)] 这样的大小。注意!:如果选择一个太大的尺寸,可能会花费很长时间 = 崩溃。
Scratch以外にも使えるのでラズパイ財団の「USING A STANDARD USB WEBCAM」ページをみて、fswebcamというツールをインストールしておきます。
https://www.raspberrypi.org/documentation/usage/webcams/
sudo apt-get install fswebcam
以上!
参考页面
高级Linux声音架构/故障排除
2.2 设置默认的麦克风/捕获设备
https://wiki.archlinux.org/index.php/Advanced_Linux_Sound_Architecture/Troubleshooting#设置默认麦克风或捕获设备