python录制指定窗口的音频
时间: 2023-10-23 15:18:05 浏览: 60
你可以使用 PyAudio 库来录制音频,同时使用 PyCWnd 库来获取指定窗口的句柄。以下是一个示例代码:
```python
import pyaudio
import pywin32
import numpy as np
# 获取指定窗口的句柄
hwnd = pywin32.GetForegroundWindow()
# 初始化 PyAudio
p = pyaudio.PyAudio()
# 设置参数
CHUNK = 1024
FORMAT = pyaudio.paInt16
CHANNELS = 2
RATE = 44100
# 打开音频流
stream = p.open(format=FORMAT,
channels=CHANNELS,
rate=RATE,
input=True,
frames_per_buffer=CHUNK)
# 录制音频
frames = []
for i in range(0, int(RATE / CHUNK * 5)):
# 获取窗口的音频数据
data = pywin32.SendMessage(hwnd, pywin32.WM_APPCOMMAND, 0, pywin32.APPCOMMAND_VOLUME_DOWN)
frames.append(data)
# 停止音频流
stream.stop_stream()
stream.close()
p.terminate()
# 将数据转换为 numpy 数组并保存为 WAV 文件
frames = np.hstack(frames)
wav_data = frames.astype(np.int16)
with open('output.wav', 'wb') as f:
f.write(wav_data)
```
在上面的代码中,我们使用 PyWin32 库的 `GetForegroundWindow` 函数获取了当前活动窗口的句柄。然后,我们使用 PyAudio 库打开了一个音频流并使用 `SendMessage` 函数从指定窗口获取音频数据。最后,我们将数据保存为 WAV 文件。注意,上面的代码只是一个示例,你需要根据实际情况进行修改。