您的位置:首页 > 移动开发 > 微信开发

iOS下微信语音播放之切换听筒和扬声器的方法解决方案

2013-09-12 12:05 302 查看
[[UIDevice currentDevice] setProximityMonitoringEnabled:YES];//建议在播放之前设置yes,播放结束设置NO,这个功能是开启红外感应

//添加监听

[[NSNotificationCenter defaultCenter]addObserver:self

selector:@selector(sensorStateChange:)

name:@"UIDeviceProximityStateDidChangeNotification"

object:nil];

//处理监听触发事件

-(void)sensorStateChange:(NSNotificationCenter*)notification;

{

//如果此时手机靠近面部放在耳朵旁,那么声音将通过听筒输出,并将屏幕变暗(省电啊)

if ([[UIDevice currentDevice] proximityState] ==YES)

{

NSLog(@"Device is close to user");

[[AVAudioSession sharedInstance]setCategory:AVAudioSessionCategoryPlayAndRecorderror:nil];

}

else

{

NSLog(@"Device is not close to user");

[[AVAudioSession sharedInstance]setCategory:AVAudioSessionCategoryPlaybackerror:nil];

}

}

//初始化播放器的时候如下设置

UInt32 sessionCategory =kAudioSessionCategory_MediaPlayback;

AudioSessionSetProperty(kAudioSessionProperty_AudioCategory,

sizeof(sessionCategory),

&sessionCategory);

UInt32 audioRouteOverride =kAudioSessionOverrideAudioRoute_Speaker;

AudioSessionSetProperty(kAudioSessionProperty_OverrideAudioRoute,

sizeof (audioRouteOverride),

&audioRouteOverride);

AVAudioSession *audioSession = [AVAudioSessionsharedInstance];

//默认情况下扬声器播放

[audioSession setCategory:AVAudioSessionCategoryPlaybackerror:nil];

[audioSession setActive:YES error:nil];
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: