如何解决使用pyaudio模拟红外遥控器
我正在尝试使用pyaudio来模拟红外遥控器的按钮按下。红外接收器连接到3.5毫米插孔,我已将其连接到Windows 10机器并尝试记录。下图显示了IR线通常如何连接到我正在尝试模拟按下按钮的HDMI分配器。
我想用一个USB到3.5mm的线将IR换成3.5mm的线,并且能够“播放”来自其他设备的USB上的按钮按下。就像我说的那样,IR接收器的3.5毫米端目前已连接到Windows 10计算机中,并且我正在使用以下代码将其记录为WAV,据我所知这是无损的。
CHUNK = 1024
FORMAT = pyaudio.paInt16
CHANNELS = 1
RATE = 44100
RECORD_SECONDS = 4
WAVE_OUTPUT_FILENAME = "output.wav"
just_changed = False
# record the audio
frames = []
p = pyaudio.PyAudio()
print('Starting')
stream = p.open(format=FORMAT,channels=CHANNELS,rate=RATE,input=True,frames_per_buffer=CHUNK)
for i in range(0,int(RATE / CHUNK * RECORD_SECONDS)):
data = stream.read(CHUNK)
frames.append(data)
stream.stop_stream()
stream.close()
p.terminate()
print('Ended')
wf = wave.open(WAVE_OUTPUT_FILENAME,'wb')
wf.setnchannels(CHANNELS)
wf.setsampwidth(p.get_sample_size(FORMAT))
wf.setframerate(RATE)
wf.writeframes(b''.join(frames))
wf.close()
当pyaudio录制时,我按下遥控器上的“ 1”按钮,当我在计算机上正常播放文件时,按下该声音时会发出一声“哔”的声音,因此我知道它正在被拾取。但是,当我通过USB将WAV播放到HDMI分配器时,它不会更改为与我按下的按钮相对应的输入。
我错过了什么吗?感觉应该有一种更简单的方法来摄取和存储3.5mm的原始输入。
注意:我也试图用原始数据写一个文件:
file = open("output.raw","wb")
file.write(b''.join(frames))
file.close()
但是我一直找不到找到通过USB“扬声器”输出发送原始文件的好方法。
如果我猜我会说这与采样率跳过我需要的帧有关,但我不知道如何验证。
如果我完全不了解这一点,请告诉我。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。