iOS 类微信语音播放之切换听筒和扬声器的方法解决方案
[[UIDevice currentDevice] setProximityMonitoringEnabled:NO]; //建议在播放之前设置yes,播放结束设置NO,这个功能是
//添加监听
self
@selector(sensorStateChange:)
@"UIDeviceProximityStateDidChangeNotification"
nil];
//处理监听触发事件
void)sensorStateChange:(NSNotificationCenter *)notification;
//如果此时手机靠近面部放在耳朵旁,那么声音将通过听筒输出,并将屏幕变暗(省电啊)
if ([[UIDevice currentDevice] proximityState] == YES)
{
NSLog(@"Device is close to user");
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord error:nil];
}
else
{
NSLog(@"Device is not close to user");
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
}
//初始化播放器的时候如下设置
UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback;
sizeof(sessionCategory),
&sessionCategory);
UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;
sizeof (audioRouteOverride),
&audioRouteOverride);
//默认情况下扬声器播放
/**
* 创建播放器
*
* @return 播放器
*/
-(AVAudioPlayer *)audioPlayer{
// _audioPlayer=nil;
if (!_audioPlayer) {
NSURL *url=[self getSaveAudioPath];
NSError *error=nil;
_audioPlayer=[[AVAudioPlayer alloc]initWithContentsOfURL:url error:&error];
_audioPlayer.numberOfLoops=0;
_audioPlayer.delegate=self;
[_audioPlayer prepareToPlay];
//初始化播放器的时候如下设置
UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback;
AudioSessionSetProperty(kAudioSessionProperty_AudioCategory,
sizeof(sessionCategory),
&sessionCategory);
UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;
AudioSessionSetProperty (kAudioSessionProperty_OverrideAudioRoute,
sizeof (audioRouteOverride),
&audioRouteOverride);
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
[audioSession setCategory:AVAudioSessionCategoryPlayback error:nil];
[audioSession setActive:YES error:nil];
if (error) {
NSLog(@"创建播放器过程中发生错误,错误信息:%@",error.localizedDescription);
return nil;
}
}
return _audioPlayer;
}
转载于:https://www.cnblogs.com/frounk/p/5448953.html
iOS 类微信语音播放之切换听筒和扬声器的方法解决方案相关推荐
- iOS语音播放之切换听筒和扬声器的方法解决方案
iOS下微信语音播放之切换听筒和扬声器的方法解决方案 [[UIDevice currentDevice] setProximityMonitoringEnabled:YES]; //建议在播放之前设置 ...
- iOS-OC-语音播放之切换听筒和扬声器的方法解决方案(红外感应)
1.设置监听,设置红外线开启状态(先关闭) //监听是否靠近耳朵 [[NSNotificationCenter defaultCenter] addObserver:self selector ...
- 微信语音能保存多久服务器,微信语音播放失败?可能是这几个原因导致的,看完你就懂了...
很多朋友在使用手机播放其他好友发送给自己的语音消息时,会出现"语音播放失败"的提示,不知道是什么原因导致的,本期文章就说说导致微信语音播放失败的几个原因,以及可行的解决办法. 一. ...
- 短视频平台源码,iOS 仿微信语音输入动画
短视频平台源码,iOS 仿微信语音输入动画实现的相关代码 // // PBSpeechRecognizer.h // ParkBest // // Created by summerxx27 on 2 ...
- php仿微信语音条,html5的audio实现高仿微信语音播放效果
前言 之前做过一个微信的项目,专家回复可以录音,然后储存成mp3格式,前台可以获取mp3,客户可以在线试听mp3录音效果,今天就简单分享一下这个效果如何实现,及实现思路和方法! 效果图 前台大体呈现效 ...
- js模仿微信语音播放的小功能
自己写的一个模仿微信语音播放的小功能,实现的主要功能是:点击播放,点击暂停,播放切换,,, 代码如下: <!DOCTYPE html> <html lang="en&qu ...
- html5的audio实现高仿微信语音播放效果
效果图 前台大体呈现效果图如下: 点击就可以播放mp3格式的录音.点击另外一个录音,当前录音停止! 思路 关于播放动画,这个很简单,我们可以用css3的逐帧动画来实现.关于逐帧动画,我之前的文章也写过 ...
- Windows如何 cmd 查找文件路径 开机启动 CMD语音播放 CMD切换到管理员!
1,语音播放: CreateObject("SAPI.SpVoice").Speak"崭新的开始,你好!" 单词别拼写错误啦! 把这个拖到开机启动项里就可以开后 ...
- [模拟拖拽] 模拟将一个文件拖拽到一个软件窗口上,实现拖拽操作(微信语音播放器)...
"金蛇语音播放器" 是我随便写的一个假名.要实现的功能是: 我在网上下载了一个播放器,在自己公司的软件中使用,用来播放微信的语音. 因为版权问题,我不想让别人知道我用的是金蛇播放器 ...
最新文章
- RAC 安装patch 后启动实例 报错 ORA-00439 feature not enabled- Real Application Clusters 解决方法...
- 软件黑盒测试的意思,请问黑盒测试是什么意思?
- Oracle入门(三B)之11G新特性 SYSASM 角色用来管理ASM
- [Node.js] 模块化 -- 中间件和跨域
- SAP License:ERP系统中供应商管理怎么做?
- 二分查找法最大最小比较次数
- /NOENTRY在VS里面的设置位置
- Android 广告图片 全屏图片适配方案的思路
- 工程项目进度控制的重点内容是什么?
- 目标定位算法(三)之基于角度的定位算法
- 关于python的文献综述_关于毕业论文文献综述,史上最全总结.doc
- 为什么建议将成员属性设置为私有
- linux 脚本编写 -eq,关于shell脚本基础编程第四篇
- 杜邦分析法拆解三种商业模式
- RTL8723BU最新驱动代码
- YUV Player Deluxe 注册
- android11息屏显示,Android 11系统锁屏做出改善:不再显示专辑封面
- TensorFlow 智能机器人原理与实现
- python蓝桥杯 既约分数
- 阿里云OSS图床搭建方法