[[UIDevice currentDevice] setProximityMonitoringEn
//加入監聽
[[NSNotificationCenter defaultCenter] addObserver:self
//處理監聽觸發事件
-(void)sensorStateChange:(NSNotificationCenter *)notification;
{
}
//初始化播放器的時候例如以下設置
UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback;
AudioSessionSetProperty(kAudioSessionProperty_AudioCategory,
UInt32 audioRouteOverride = kAudioSessionOverrideAud
AudioSessionSetProperty (kAudioSessionProperty_OverrideAudioRoute,
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
//默認情況下揚聲器播放
[audioSession setCategory:AVAudioSessionCategoryPl
[audioSession setActive:YES error:nil];
在 iOS 中,並不是全部 iOS 設備都擁有近距離傳感器。
這里介紹怎樣調用 iPhone 的距離傳感器。
使用近距離傳感器
UIDevice
proximityMonitoringEnabled 屬性
To determine if proximity monitoring is available, attempt to enable it. If the value of the proximityState property remains NO, proximity monitoring is not available.
要確定近距離傳感器是否可用,能夠嘗試啟用它,即 proximityMonitoringEnabl
proximityState 屬性
傳感器已啟動前提條件下,假設用戶接近 近距離傳感器,此時屬性值為YES。而且屏幕已關閉(非休眠)。And vice versa。
Notification
UIDeviceProximityStateDi
#pragma mark - 處理近距離監聽觸發事件
-(void)sensorStateChange:(NSNotificationCenter *)notification;
{
if (isCloseToUser)
{
[audioSession setCategory:AVAudioSessionCategoryPlayAndRecord error:nil];
} else {
[audioSession setCategory:AVAudioSessionCategoryPlayback error:nil];
if (!_isPlayingAudio) {
[[EMCDDeviceManager sharedInstance] disableProximitySensor];
}
}
[audioSession setActive:YES error:nil];
}
就沒什么問題了。
UILongPressGestureRecognizer *longPressGestureRecognizer = [[UILongPressGestureRecognizeralloc]initWithTarget:self
action:@selector(longPressed:)];
[longPressGestureRecognizersetMinimumPressDuration:1.0f];
[longPressGestureRecognizersetAllowableMovement:50.0];
[self.bubbleBgImageViewaddGestureRecognizer:longPressGestureRecognizer];
[longPressGestureRecognizerrelease];
---------
-(void)longPressed:(UILongPressGestureRecognizer *) gestureRecognizer
{
switch (gestureRecognizer.state)
{
caseUIGestureRecognizerStateEnded:
break;
caseUIGestureRecognizerStateCancelled:
break;
caseUIGestureRecognizerStateFailed:
break;
caseUIGestureRecognizerStateBegan:
if ([self.voiceDelegaterespondsToSelector:@selector(BaseChartVoiceLongPressed)])
{
[self.voiceDelegateBaseChartVoiceLongPressed];
}
break;
caseUIGestureRecognizerStateChanged:
break;
default:
break;
}
}
#pragma mark BaseChartCellDelegate
-(void)BaseChartVoiceLongPressed
{
NSLog(@"voice long Pressed");
if ([[[AVAudioSessionsharedInstance]category]isEqualToString:AVAudioSessionCategoryPlayback])
{
//切換為聽筒播放
[[AVAudioSessionsharedInstance]setCategory:AVAudioSessionCategoryPlayAndRecorderror:nil];
[selfshowTipInfo:@"切換為聽筒模式"];
}
else
{
//切換為揚聲器播放
[[AVAudioSessionsharedInstance]setCategory:AVAudioSessionCategoryPlaybackerror:nil];
[selfshowTipInfo:@"切換為揚聲器模式"];
}
}
注意 : 特此聲明加入一個聲音,播放的第三方下載地址:http://download.csdn.net/detail/wenhaiwang/8998967