使用 iPod 录制和播放音频
Posted
技术标签:
【中文标题】使用 iPod 录制和播放音频【英文标题】:Recording and playing audio with iPod 【发布时间】:2012-05-13 12:24:40 【问题描述】:我正在尝试在通用应用中录制和播放音频。 AVAudiosession 配置为:
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord error: nil];
UInt32 category = kAudioSessionCategory_PlayAndRecord;
AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(category), &category);
这适用于带有内置麦克风的设备。但在第三代 iPod 中,我遇到了随机的不良行为。有时一切正常,有时只有在插入带有集成麦克风的耳机时才会发生。在这种情况下,没有耳机是无法在应用中听到任何声音的。
【问题讨论】:
【参考方案1】:第三代 iPod Touch 没有内置麦克风。拥有一个的唯一方法是用麦克风插入耳机。 唯一带有内置麦克风的 iPod Touch 是第 4 代。
您可以检查 inputRecording 是否可用:
UInt32 propertySize, micConnected;
AudioSessionGetProperty(kAudioSessionProperty_AudioInputAvailable, &propertySize, &micConnected);
【讨论】:
谢谢戴夫,但这并没有解决我的问题。问题是当我将音频类别设置为 kAudioSessionCategory_PlayAndRecord 以允许在 iPod 第三代中录制时,我失去了外部扬声器的声音。我正在检测设备型号和麦克风插入/拔出,并尝试重置音频会话类别,但无法恢复扬声器声音。有什么线索吗? @LoDani 在第三代 iPod Touch 上,当您获得 kAudioSessionProperty_AudioInputAvailable 时的结果是什么?拔下耳机时出现您的问题? 无论耳机是否连接,它都会返回 true (micConnected != 0)。但是我得到了正确的结果,要求 [[AVAudioSession sharedInstance] inputIsAvailable]。是的,当我在录制后拔下耳机时出现了我的问题。我在检测到拔出后尝试更改 AudioCategory 和 AudioRoute 属性,但没有结果。 @LoDani 如果此链接对您没有帮助,您应该在 Apple 开票。也许这是一个错误。 developer.apple.com/library/IOs/ipad/#documentation/Audio/…以上是关于使用 iPod 录制和播放音频的主要内容,如果未能解决你的问题,请参考以下文章
AVAudioSessionCategoryPlayAndRecord 和 iPod 音频播放