pyaudio只记录6个输入通道中的4个

问题描述

我尝试读出一个可以给我6个频道的麦卡利,但我只想要4个频道。现在,我的回调如下:

    def _callback(self,data,frame_count,time_info,status):
        self.frames_till_next_file -= frame_count
        # see if we need to start a new file
        if self.frames_till_next_file < 0:
            self.frames_till_next_file += self.frames_between_start
            self.begin_wave_file()

        done = []
        for file in self.files:
            remain = self.frames_per_file - file.getnframes()

            if frame_count < remain:
                file.writeframesraw(data)
            else:
                remain *= self.sample_width * self.num_channels
                file.writeframesraw(data[:remain])
                done.append(file)

        # tell pyaudio to keep goin
        return (None,pyaudio.paContinue)

我的pyaudio流是这样的:

        self.pa = pyaudio.PyAudio()
        self.stream = self.pa.open(
            format=sample_format,channels=6,rate=sample_rate,frames_per_buffer=1024,input=True,start=False,stream_callback=self._callback,input_device_index=0
        )

我写的原始文件如下:

        file = wave.open(path,'wb')
        file.setnchannels(self.num_channels)
        file.setsampwidth(self.sample_width)
        file.setframerate(self.sample_rate)

我无法设法仅将通道2到通道5的数据写入原始文件

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)