gpt4 book ai didi

iphone - 实时音频队列录音回放

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:57:39 26 4
gpt4 key购买 nike

大家好,我正在尝试构建一个用于实时变声的应用程序。在第一步中,我设法将音频数据录制到指定文件并在录制后播放。现在,我尝试更改用于在循环录制音频缓冲区后立即播放音频缓冲区的代码。我的问题是,如何直接从录音音频队列而不是(如文档中所示)从文件中读取音频数据。我很感谢任何想法,如果需要可以显示代码部分。提前致谢,Lukas(来自德国)

最佳答案

查看 SpeakHere 示例。此行获取音频数据:

OSStatus result = AudioFileReadPackets(THIS->GetAudioFileID(), false, &numBytes,     inCompleteAQBuffer->mPacketDescriptions, THIS->GetCurrentPacket(), &nPackets, 
inCompleteAQBuffer->mAudioData);

因此,无需调用 AudioFileReadPackets,您可以只使用 memcpy 复制记录的数据缓冲区。或者,也可以向播放 AudioQueue 提供指向音频数据缓冲区的指针。随着回放的继续,通过缓冲区推进一个 mCurrentPacket 指针。

要记录,您需要做一些非常相似的事情。您将不会写入文件,而是写入内存中的缓冲区。您首先需要使用 malloc 分配它。然后是你传入的AudioQueue 捕获记录的数据,你把那个数据复制到缓冲区。随着更多数据被复制,您将记录头或 mCurrentPacket 推进到一个新位置。

关于iphone - 实时音频队列录音回放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4639912/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com