- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
大家好,我正在尝试构建一个用于实时变声的应用程序。在第一步中,我设法将音频数据录制到指定文件并在录制后播放。现在,我尝试更改用于在循环录制音频缓冲区后立即播放音频缓冲区的代码。我的问题是,如何直接从录音音频队列而不是(如文档中所示)从文件中读取音频数据。我很感谢任何想法,如果需要可以显示代码部分。提前致谢,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/
我有一个 cvMat 类型的 vector ,我一直在其中存储从我的计算机网络摄像头拍摄的帧。存储 100 帧后,我想回放这些帧。如果 record 是我的 cvMats vector ,我想这可能是
我正在尝试设置一个将重播最新值的 Angular2 Observable。 import {Injectable} from 'angular2/core'; import {Observable}
如何在没有 IDE 的情况下回放 Rational Functional Tester 8.1 而使用命令提示符请提供命令 最佳答案 在以下链接中搜索“命令行”: http://publib.boul
我想知道是否有人在录音(从用户浏览器上的麦克风)和从基于网络的应用程序(Ruby/RoR)回放方面取得了成功? 到目前为止我发现了什么 - 我可以编写一个 flex/flash 应用程序来录制音频,然
我正在使用以下代码来实现实时录制和回放系统: import android.media.*; class Rec { static boolean m_isRun = true; static int
假设我想通过设置所有内容并在我的输入回调中接收音频数据的常规过程来记录到我的输入队列中。我不想将其写入文件,而是想在某个地方开始短暂地缓冲它,然后将其提供给输出队列,输出队列将在我的输入队列后不久开始
我是一名优秀的程序员,十分优秀!