作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
TPCircularBuffer有点麻烦。
当我直接从回调缓冲区中打印出样本时,我会看到正确的值,但是一旦将它们复制到TPCircularBuffer中,它们就是不正确的。
有任何想法吗?
我已经在测试应用程序中使用了TPCircularBuffer,并且一切正常。
提前非常感谢您的帮助!
这些是代码的相关部分:
// Declare and initialize TPCircularBuffer
TPCircularBuffer circularBuffer;
TPCircularBufferInit(&circularBuffer, 4096);
// Callback stores signed integers in inBuffer->mAudioData.
SInt16 * buffer = (SInt16*) inBuffer->mAudioData;
int32_t availableBytes;
// Each SInt16 is 2 bytes.
// So, this should place 512 SInt16 values from the buffer
// into the circularBuffer, right?
TPCircularBufferProduceBytes(&circularBuffer, &buffer, 1024);
SInt16 *ptr2 = TPCircularBufferTail(&circularBuffer, &availableBytes);
printf("Total byte size of buffer: %i\n", (int)availableBytes);
printf("circularBuffer[0] = %i\n", ptr2[0]);
printf("buffer[0] = %i\n", buffer[0]);
Total byte size of buffer: 1024
circularBuffer[0] = -16384
buffer[0] = 0
最佳答案
我不太确定您要问什么,所以这里有个简单的例子。
初始化:
TPCircularBuffer tpBuffer;
int secondsOfBuffer = 8;
float sampleRate = 44100.0;
int bufferByteSize = secondsOfBuffer * sampleRate * sizeof(SInt16);
TPCircularBufferInit(&tpBuffer, bufferByteSize);
int32_t availableBytes;
SInt16 *head = TPCircularBufferHead(&tpBuffer, &availableBytes);
int sampleCount = 1024;
for (int i = 0; i < 1024; i++) {
head[i] = i;
}
TPCircularBufferProduce(&tpBuffer, sampleCount * sizeof(SInt16));
SInt16 *tail = TPCircularBufferTail(&tpBuffer, &availableBytes);
int32_t availableBytes;
int availableSamples = availableBytes / sizeof(SInt16);
for (int i = 0; i < availableSamples; i++) {
printf("%i\n",tail[i]);
}
TPCircularBufferConsume(&tpBuffer, sizeof(SInt16) * sampleCount);
关于objective-c - 错误的值被复制到TPCircularBuffer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33443386/
我们有适用于 iOS 平台的 VoIP 应用程序。我们使用 TPCircularBuffer 进行音频缓冲,它的性能非常好。 所以我想知道是否也可以使用 TPCircularBuffer 进行视频缓冲
我正在尝试将 TPCircularBuffer 集成到我的 Swift 项目中。 11.0/xcode 9我在 TPCircularBuffer.h 中收到以下错误: "No matching fun
我正在尝试在我的类中实现一个循环缓冲区。 如果我在 init 方法中启动它,它会工作,但我想将缓冲区变量声明为私有(private)的,这样我就可以从类中的任何地方访问它: #import "Audi
我正在构建一个 AUGraph,并尝试通过 AVCaptureAudioDataOutput 委托(delegate)方法从输入设备获取音频。 使用 AVCaptureSession 是所解释问题的结
我是一名优秀的程序员,十分优秀!