【问题标题】:Recording sound with OpenAL(C++). Buffer size使用 OpenAL(C++) 录制声音。缓冲区大小
【发布时间】:2012-12-23 15:07:14
【问题描述】:

我在使用 OpenAL 库录制声音时遇到了一个问题。我读了这个问题的第二个答案:Recording Audio with OpenAL。但我不明白,如何更改缓冲区大小。例如,如果我将 SSIZE 和缓冲区大小更改为 441,程序就会崩溃。如果你知道这个问题的答案,请解释一下,我怎样才能获得采样率为 96000Hz 的 1 ms 缓冲区。 (数组中的 96 个元素,1 个通道,8 位)。请帮帮我。

添加: 我改变了这个:

const int SRATE = 96000;
const int SSIZE = 96;

ALbyte buffer[SSIZE];
ALint sample;

AL_FORMAT_STEREO16

AL_FORMAT_MONO8

这给了我这个错误:

【问题讨论】:

  • 显示您编写的代码...还请记住,由于开销,不太可能实现 1ms 缓冲区

标签: c++ audio microphone openal


【解决方案1】:

我猜 alcGetIntegerv 返回的样本数大于 SSIZE ...

【讨论】:

  • 在 alcGetIntegerv 样本值始终为 0 之后。如何发现缓冲区的禁用长度的准确值?
猜你喜欢
  • 1970-01-01
  • 2017-07-10
  • 1970-01-01
  • 1970-01-01
  • 2014-05-28
  • 1970-01-01
  • 1970-01-01
  • 2011-11-26
相关资源
最近更新 更多