耳机 插入/拔出 代码监测
2014-04-03 20:17
24 查看
播放器音频时候关于检测耳机的插入、拔出,网络上面虽然有很多代码,但是也有朋友问具体怎么做,实例项目用到,分享如下:
用代码来监测,具体思路流程如下:
先在init里面添加观察者:
在viewdidload里面添加监听
之后实现这个监听回调方法:
通过通知的方法让耳机拔出后继续播放,原因是在插入耳机后可以正常收听,但是拔出后没有继续播放,而是静音,所以要在监测拔出耳机后继续播放,用了通知功能。
但是有个问题,这种监听方式已经被 7.0 弃用了,目前没找到代替方法,有知道的朋友记得分享回复我啊,谢了。
用代码来监测,具体思路流程如下:
先在init里面添加观察者:
[notificationCenter addObserver:self selector:@selector(continuePlaying) name:@"PLAY" object:nil];
在viewdidload里面添加监听
AudioSessionAddPropertyListener(kAudioSessionProperty_AudioRouteChange, // audioRouteChangeListenerCallback,(__bridge void *)(self));
之后实现这个监听回调方法:
void audioRouteChangeListenerCallback (void *inUserData, AudioSessionPropertyID inID, UInt32 inDataSize, const void *inData) { UInt32 propertySize = sizeof(CFStringRef); AudioSessionInitialize(NULL, NULL, NULL, NULL); CFStringRef state = nil; AudioSessionGetProperty(kAudioSessionProperty_AudioRoute ,&propertySize,&state); NSString *stateStr = (__bridge NSString *)state; if ([stateStr isEqualToString:@"Speaker"]) { [[NSNotificationCenter defaultCenter] postNotificationName:@"PLAY" object:nil]; } } -(void)continuePlaying { if (playBtn.selected) { [player.moviePlayer play]; } }
通过通知的方法让耳机拔出后继续播放,原因是在插入耳机后可以正常收听,但是拔出后没有继续播放,而是静音,所以要在监测拔出耳机后继续播放,用了通知功能。
但是有个问题,这种监听方式已经被 7.0 弃用了,目前没找到代替方法,有知道的朋友记得分享回复我啊,谢了。
相关文章推荐
- AE二次开发,通过代码向axPageLayout控件,插入图例和指北针的方法
- 测试插入代码~~~
- 在LaTeX中插入程序代码
- 新浪博客插入代码块及代码高亮模板
- 注册页面后台代码-当需跨表插入数据
- 插入flash的简单代码
- IOS 判断耳机插入/拔出
- iOS 如何监听出插入耳机 拔掉耳机事件?
- mybatis动态插入list传入List参数的实例代码
- 今天学了线性表顺序表示,自己写了一段代码!实现了 插入和删除!这也是第一次写博客
- 红黑树插入代码学习
- Flask 如何在代码中往数据库插入数据
- 网页中插入Flash动画(.swf)代码和常用参数设置
- C# 在 webBrowser 光标处插入 html代码 .
- FCKEditor2.6集合插入代码、flv视频配置方法
- avl tree的插入删除操作代码
- PHP接收json 并将接收数据插入数据库的实现代码
- 用Live Writer写博文插入程序代码的三个插件比较
- [转]网页中插入视频播放代码全集
- MongoDB插入、更新、删除文档实现代码