标签:bsp 需要 stdin docker 网络连接 attr mod sys build
- 一共两个设备(树莓派或香蕉派)。一个设备做录音端,一个设备做播放端,通过网络的方式建立连接。
- 网络连接采用netcat的方式在录音端建立监听(arecord -D ‘xxx(录音设备名)‘ |nc -l 8888),在播放端连接上监听后播放(nc xxx.xxx.xxx(ip地址) xxxx(端口) | aplay)。
- 为了简化手工输入命令,用python来实现在一个设备来控制另外一个设备自动录音、播放。
在终端中输入:
sudo apt-get install alsa-utils
安装完成后输入aplay -l
来查看当前的声卡设备,输入arecord -l
来查看当前的录音设备。
sudo modprobe snd-bcm2835 #把声音模块加入内核
arecord -l
中看到的是plughw:1,0
其他参数自行查用法)
arecord -D plughw:1,0 -t wav -f cd -r 8000 ./test.wav
在当前目录录音生成test.wavaplay ./test.wav
arecord -D plughw:1,0 -t wav -f cd -r 8000 | aplay
得到期望的结果为录音和播放正常。输入nc -h
看一下系统中是否已安装netcat,如果未安装,通过sudo apt-get install netcat
进行安装。
这里两台设备的ip分别为:
- A设备:192.168.199.101
- B设备:192.168.199.102
arecord -D plughw:1,0 -t wav -f cd -r 8000 | nc -l 8888
nc 192.168.199.102 8888 | aplay
得到期望的结果为在B设备能听到A设备的录音。只在一个设备里控制另一个设备进行录音或者播放。
这里用python的paramiko库来实现这个测试。
sudo apt-get install build-essential libssl-dev libffi-dev python-dev
sudo easy_install pip
sudo pip install paramiko
- 实现A设备控制B设备录音,并在A设备中播放 (测试成功):
#!/bin/python
# -*- coding: utf-8 -*-
import paramiko
#B端的IP
ip=‘192.168.199.102‘
port = 22
username = ‘用户名‘
password = ‘密码‘
#B端
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(ip, port,username, password)
cmd=‘arecord -t wav -f cd -r 8000 | nc -l 8888‘
stdin, stdout, stderr = ssh.exec_command(cmd)
#A端
os.system(‘nc 192.168.1.102 8888|aplay‘)
ssh.close()
- 实现A设备控制 B设备录音,并在A设备中播放,同时A设备录音在B设备中播放。(手头的设备有一个没有mic未实际测试):
#!/bin/python
# -*- coding: utf-8 -*-
import paramiko
#B端的IP
ip=‘192.168.1.102‘
port = 22
username = ‘用户名‘
password = ‘密码‘
#B端
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(ip, port,username, password)
cmd=‘arecord -t wav -f cd -r 8000 | nc -l 8888‘
stdin, stdout, stderr = ssh.exec_command(cmd)
#A端
os.system(‘nc 192.168.1.102 8888|aplay‘)
#A端
os.system(‘arecord -t wav -f cd -r 8000 | nc -l 9999‘)
#B端
cmd=‘nc 192.168.1.101 9999 |aplay‘
stdin, stdout, stderr = ssh.exec_command(cmd)
ssh.close()
arecord -f cd -D "plughw:1" -d 10 | ssh yanisyu@192.168.1.102 aplay -f cd
理论上这种方式也可行
标签:bsp 需要 stdin docker 网络连接 attr mod sys build
原文地址:http://www.cnblogs.com/itlqs/p/6918757.html