2011-11-30 119 views
1

我有一个处理音频录制的第三方SDK。记录开始时有一个回调。在回调中,我试图播放声音以向用户表明设备正在侦听(如Siri或任何其他语音识别倾向于这样做),但是当我尝试出现以下错误时:在录制失败时播放声音

AURemoteIO :: ChangeHardwareFormats:错误-10875

我试图使用AudioServicesPlaySystemSound播放声音以及AVAudioPlayer都有相同的结果。声音在其他时间播放良好,根据错误我假设在硬件级别播放和录制之间存在不兼容性。任何人都可以澄清这个错误,或给我一个暗示可能的解决方法?

+0

我自从发现SDK有一种方法可以在录制开始时播放声音进行播放!只有它不能正常工作。它会在您要求录制开始时播放,而不是在实际启动时播放,因此毫无意义,我又回到了原点。 – ima747

回答

0

我的问题与外部SDK有关,以及它们如何处理音频接口。当您要求SDK开始录制时,它们会覆盖所有内容,如果您控制回断开录制会话。所以在SDK的上下文中,除非他们修复SDK,否则无法解决它。

0

您不应该也可能无法在RemoteIO录音回拨中播放声音。只在回调中设置一个布尔标志来表示应播放声音。从主UI运行循环播放你的声音。

+0

回调在主线程上执行。自那时起,我尝试从一个子线程播放声音,并且延迟并明确地在主线程中播放声音(仅仅是因为我错了,并且它不在主线程中)以试图绕过任何声音线程有关打嗝但没有效果。我似乎与音频硬件本身有关。 – ima747

1

在开始RemoteIO音频单元录制之前,请确保音频会话已初始化并配置为用于播放和录制。

+0

在第三方SDK调用之前,它被我用来播放和录制。也许他们在内部改变它只是记录?如果他们这样做,这是人们应该期望的错误吗? – ima747