我正在尝试在 python 中使用 socket 和 pyaudio 编写语音聊天。我写了它并且它有效,但它引发了这些错误
ALSA lib pcm_dmix.c:1052:(snd_pcm_dmix_open) 无法打开从站
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) 未知 PCM 卡.pcm.rear
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) 未知 PCM 卡.pcm.center_lfe
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) 未知 PCM 卡.pcm.side
ALSA lib pcm_route.c:867:(find_matching_chmap) 找不到匹配的通道图
ALSA lib pcm_dmix.c:1052:(snd_pcm_dmix_open) 无法打开从站
它不断提高这个:
ALSA lib pcm.c:8306:(snd_pcm_recover) 发生欠载"
我在接收和播放声音的 Server.py 中得到这些。如何解决?
服务器:
import pyaudio
import wave
from time import sleep
import socket
import threading
IP = "127.0.0.1"
PORT = 5000
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((IP, PORT))
s.listen()
class Voice:
def __init__(self):
self.p = pyaudio.PyAudio()
def get_input_devices(p): …
Run Code Online (Sandbox Code Playgroud) 我正在使用节点测试流,并设置一个程序来读取大文件并使用流再次写入它。问题是运行程序时,节点的内存使用量高达 1.3 GB,这正是正在读取的文件的大小。就像它不会流式传输它,它会缓冲它并一次性写入它,或者垃圾收集器不会破坏chunk
内存中的变量。这是程序:
const { createReadStream, createWriteStream } = require('fs');
const readStream = createReadStream('../movie.mp4', {
highWaterMark: 10000
});
const writeStream = createWriteStream('./copy.mp4', {
highWaterMark: 10000
});
readStream.on('data', function (chunk) {
writeStream.write(chunk);
})
readStream.on('end', function () {
console.log("reading done");
writeStream.end();
});
writeStream.on('close', function () {
console.log("Writing done.");
})
Run Code Online (Sandbox Code Playgroud)
奇怪的是,如果我通过管道传输这些流,它会按预期工作,并且内存使用量不会超过 20 MB。像这样:
const { createReadStream, createWriteStream } = require('fs');
const readStream = createReadStream('../movie.mp4', {
highWaterMark: 10000
});
const writeStream = createWriteStream('./copy.mp4', {
highWaterMark: 10000
});
readStream.pipe(writeStream);
Run Code Online (Sandbox Code Playgroud)
什么会导致这种行为?
节点版本:v14.15.4
我想在正则表达式的匹配中获取组的索引。注意下图:
您可以看到它创建了 3 个匹配项。左侧显示比赛的索引和组 1 的索引。我想在Python中获取Group 1的索引,我该怎么做?下面的图片显示了 Python 的返回结果: