gpt4 book ai didi

iphone - 如何在 iPhone 上录制音频

转载 作者:行者123 更新时间:2023-12-03 19:32:54 26 4
gpt4 key购买 nike

我想使用 iPhone 录制音频(< 2 分钟)并将其保存到文件中。我看了 SpeakHere,但它让我感到困惑。我使用哪些类(class)?我要创建哪些委托(delegate)方法?

谢谢!

最佳答案

我同意,SpeakHere 并不是学习 iPhone 音频的一个很好的起点。

iPhone 音频使用两个概念。音频队列和 Audio Session 。如果你想录制到一个文件,你需要创建一个AudioSession,激活该 session ,并创建一个AudioInputQueue和一个AudioOutputQueue。

AudioQueues 的引用(到目前为止您将处理最多的部分)是:

http://developer.apple.com/iphone/library/documentation/MusicAudio/Conceptual/AudioQueueProgrammingGuide/Introduction/Introduction.html

对于 Audio Session :

http://developer.apple.com/iphone/library/documentation/Audio/Conceptual/AudioSessionProgrammingGuide/Introduction/Introduction.html

尽管您可以忽略大多数 AudioSession 内容,因为您不会做任何那么复杂的事情。基本上,步骤如下:

  1. 使用 AudioInterrupt 回调初始化 Audio Session 。此回调处理来电的情况,从而中断您的程序。
  2. 设置传入音频和文件绑定(bind)音频的数据格式。它存储在名为 AudioStreamBasicDescription 的结构中。
  3. 创建一个 AudioQueue 对象并使用 AudioQueueNewInput 对其进行初始化。您必须指定一个回调来处理传入的音频。您可以在此处指定将音频保存到文件中,但请注意,这是一个实时线程,您必须尽力不要阻止它太久。
  4. 定义您的录音系统将有多少个 AudioQueueBuffer。这些缓冲区将根据您在步骤 2 中指定的采样率进行填充。您必须调整这些缓冲区,以便在下一个缓冲区到达之前有足够的时间进行处理。
  5. AudioSessionSetActive(是);
  6. AudioQueueStart 在您的 AudioQueue 上。

我没有在此处包含所有参数,但这就是 API 的用途。

希望有帮助。

[编辑]

抱歉,忘记包含输出内容,尽管它们相当简单。创建另一个 AudioQueue,使用 AudioQueueNewOutput 进行初始化,API 应该能够指导您完成其余的工作。

干杯。

关于iphone - 如何在 iPhone 上录制音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/400016/

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