在房间里保持沉默时播放声音;听到声音时停止发声

时间:2013-07-18 17:22:07

标签: ios avaudioplayer avaudiorecorder

我需要一些指导,因为我可能要将开发搁置一段时间。

我想在灯关闭并且房间变暗后播放声音,然后在灯重新开启后停止播放声音。我发现Apple目前没有提供访问环境光传感器的方法(不会以任何方式获得App Store批准)。

我一直在努力的另一种方法是尝试检测声音级别(使用AVAudioPlayer / Recorder和来自http://mobileorchard.com/tutorial-detecting-when-a-user-blows-into-the-mic/的示例代码。也就是说,当我检测到房间里的人的声音已降到特定水平时(即沉默试图补偿背景噪音),我发出我的声音。

然而,如果房间里的人再次开始说话并且我发现声音,我需要停止播放声音。

问:这是否会弄巧成拙,即iPhone产生的声音基本上会被iPhone麦克风拾取,与房间内的声音无法区分?是的,除非有另一种方法,否则我将处于僵局,直到Apple打开光传感器API。

2 个答案:

答案 0 :(得分:0)

我不认为iPhone扬声器发出的噪音会被麦克风拾取。手机会取消扬声器产生的声音。我读了一遍,如果我找到了源代码,我会发布它。但是,根据经验,当您使用扬声器电话时,您可以知道这种情况。如果麦克风从距离它一英寸远的扬声器中拾取声音,则反馈会非常糟糕。

话虽如此,唯一确定它是否适用于您的情况的方法是尝试一下。

答案 1 :(得分:0)

我同意woz:手机应取消它发出的声音。关于环境光传感器,我看到的唯一替代方案是使用相机,但效率非常低,并且需要启动应用程序。