我的应用可让用户听到声音文件,并使用AVAudioPlayer
进行播放
我在一些应用程序中看到了一个非常好的行为,当用户将手机放在耳边时,声音扬声器从普通扬声器变为耳机扬声器。
我现在知道从哪里开始,我应该检测手机的移动并更改输出扬声器,还是有任何本机实现此行为?
答案 0 :(得分:0)
实现此目的的最直接途径是在UIDevice中使用邻近监控。接近监控可以告诉您手机是否靠近用户。
倾听UIDeviceOrientationDidChangeNotification并相应地对proximityState更改做出反应 - 在您的情况下,重新路由音频。
对类似问题here有一个彻底的答案。该答案包括用于组合设备运动以提高准确度的补充细节。
答案 1 :(得分:0)
您正在寻找的是接近传感器(iphone耳机附近的小硬件),而不是任何运动传感机制。接近传感器可以通过公共API通过UIDevice的proximityState属性访问,该属性只返回一个布尔值,指示传感器是否靠近用户:proximityState。
根据该值,您可以继续将音频路由到耳机。这可以使用AVAudioSession类来实现,并专门将类别(setCategory:error)设置为AVAudioSessionCategoryPlayAndRecord。