【问题标题】:Audio recorded is echoing in mac app using Apple Sample使用 Apple Sample 录制的音频在 Mac 应用程序中回显
【发布时间】:2011-04-27 17:42:01
【问题描述】:

我需要在我的 mac 应用程序中实现录音功能。我正在使用 Apple 示例

http://developer.apple.com/library/mac/#samplecode/AudioDataOutputToAudioUnit/Listings/main_m.html。一切正常。唯一的问题是创建的音频文件在播放时有回声。请帮忙!后来我检查了,Apple 示例也有同样的问题

【问题讨论】:

  • 录音时是否通过扬声器输出音频?麦克风是否有可能从扬声器中拾取该音频,从而产生回声?
  • @Josh 它通过内置扬声器。你可以试试这个示例,你会知道到底发生了什么。录制的内容似乎播放了两次。请尝试苹果示例

标签: cocoa-touch macos


【解决方案1】:

来自description of the sample code

构建的应用程序使用带有 QTCaptureDecompressedAudioOutput 的 QTCaptureSession 从默认系统输入设备捕获音频,使用简单效果 AudioUnit 将效果应用到该音频,并使用将修改后的音频写入文件CoreAudio ExtAudioFile API。

来自CaptureSessionController.m:

/* Create an effect audio unit to add an effect to the audio before it is written to a file. */
    OSStatus err = noErr;

    AudioComponentDescription effectAudioUnitComponentDescription;
    effectAudioUnitComponentDescription.componentType = kAudioUnitType_Effect;
    effectAudioUnitComponentDescription.componentSubType = kAudioUnitSubType_Delay;

看起来这种延迟是故意的,作为演示的一部分。

【讨论】:

  • 你能建议我应该使用什么吗?我不想要任何效果。我只是想在不使用任何效果的情况下录制音频。我尝试评论你提到的部分,但在这种情况下不会创建音频文件
  • @Swastik Apple 的Getting Started With Audio and Video 页面包含指向用于录制音频的 AVAudioRecorder 类和 SpeakHere 演示应用程序的链接。我没有做过太多的音频编程,所以我真的帮不上什么忙了。
  • 谢谢!我看到你回答了许多与 mac 相关的问题,这就是为什么要求回答。
【解决方案2】:

嗯,我自己找到了答案。只需要评论

effectAudioUnitComponentDescription.componentSubType = kAudioUnitSubType_Delay;

来自 CaptureSessionController.m:

【讨论】:

    猜你喜欢
    • 2011-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-15
    • 1970-01-01
    • 2016-12-13
    • 2013-03-06
    • 1970-01-01
    相关资源
    最近更新 更多