首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenSL能记录自己吗?

OpenSL能记录自己吗?
EN

Stack Overflow用户
提问于 2014-01-08 19:50:31
回答 1查看 285关注 0票数 0

我想从游戏中捕获传出的音频,并在播放时将其记录到音频文件中。这在OpenSL的框架内是可能的吗?比如把OutputMix连接到AudioRecorder或者什么的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-27 09:39:51

您可以将回调注册到队列,并在将输出缓冲区排队到缓冲区队列之前/之后获取输出缓冲区。您可以在一个新缓冲区的每个队列中写入一个wavBuffer (一个缓冲区大小长度的短数组)。然后将此缓冲区的内容写入文件。

代码语言:javascript
复制
outBuffer = p->outputBuffer[p->currentOutputBuffer];  // obtain float buffer

for ( int i = 0; i < bufferSize; ++i )
    wavBuffer = ( short ) outBuffer[ i ] * 32768; // convert float to short

// now append contents of wavBuffer into a file

队列回调的基本OpenSL设置将在在这页上中详细解释。

在C++中创建WAV文件的一种非常基本的方法可以找到这里,请注意,您必须对整个WAV文件的实际大小有一个非常明确的了解,因为它是其头文件的一部分。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21005185

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档