6s耳机模式。我在设置里面打开铃声都是外放,但是酷狗制作铃声iphone6sqq微信刷的软件全部都没有声音。

 苹果6s手机,好好的突然微信,酷狗,qq所有应用全无声音提示,外放语音、音乐所有都无声音,但手_百度知道手机怎么没有铃声,一点声音没有。是那里出问题-中国学网-中国IT综合门户网站-提供健康,养生,留学,移民,创业,汽车等信息
> 信息中心 >
手机怎么没有铃声,一点声音没有。是那里出问题
来源:互联网 发表时间: 9:54:14 责任编辑:王亮字体:
为了帮助网友解决“手机怎么没有铃声,一点声音没有。是那里出问题”相关的问题,中国学网通过互联网对“手机怎么没有铃声,一点声音没有。是那里出问题”相关的解决方案进行了整理,用户详细问题包括:RT,我想知道:手机怎么没有铃声,一点声音没有。是那里出问题,具体解决方案如下:解决方案1:
从同步助手下载个声音效果比较好的铃声试试嘞,推荐在电脑上下载个pc端的同步助手,或者设置的铃声声音比较小嘞,如果还不行的话那就可能是你关闭了铃声系统嘞,找售后去看看,是不是你设置了静音如果不是的话要先看下是不是设备的音频有问题了首先去设置里面看看,希望可以帮助到你
解决方案2:
去设置里面调一下
解决方案3:
去设置!看看你是不是把静音设置给开开了
相关文章:
最新添加资讯
24小时热门资讯
Copyright © 2004- All Rights Reserved. 中国学网 版权所有
京ICP备号-1 京公网安备02号天气逐渐转冷,娱乐精神依然炙热,接近年关无论游戏/影视/生活百态都会引来一大波的爆...
这其中是不是暗示着像这样让人耳目一新的变化呢?
可能 iOS 10 的通知中心是令人最难适应的,因为苹果不止给它设计了一套新的外观样式,...
研究深度学习的Russ Salakhutdinov怎么让Siri去学习呢?
Apple Watch又双叒叕有新品了吗?让我们查个究竟。
这并不是苹果官网第一次通过“黑白”网页的形式来对世界上有贡献的人士表达敬意,此前...
iOS 10.1是iOS 10发布以来的第一个重大版本更新,它的正式版将会何时到来,目前还没有...
如果你此前遇到了这个问题的话,不妨更新到最新的操作系统。
由于玩法简单、画风多变、对设备要求低等原因,在 App Store 当中存在着相当数量的跑...
信用卡还不上款简直压力山大,不仅会让自己破产还会让自己的信用受到影响,这在注重信...
制作表格是一件相当繁琐的事情,而如果在屏幕尺寸相对较小的手机或者平板电脑上进行此...
“一个不能美颜的照相 App,不是好的 App”,这是被美颜惯坏了的吃瓜群众对当下照相 A...
拼图是一种休闲得不能再休闲的游戏,但在有心人手里,它愣是可以变得极致优雅又有内涵...
曾经开发过《酱噗联盟》、《跑跑小红帽》等趣味手游的独立开发团队 RUNEWAKER 在本周...
新作在保持了像素风格的方块状画面之外,与前作相比画面质量更加优秀,而且在不同的环...
oZoKase 拥有一个可以滑动的前置摄像头,它采用的是 1600 万像素感光元件,同时还配有...
国内无人机产品研发大多都是面对个人用户为主的消费级无人机,而智航则是面向企业和团...
有记者走访了美国当地的一些苹果零售店后发现,两款新的Apple Watch相当抢手。
大部分用户在选择 iPhone 保护壳的时候都会倾向于那些不那么笨重并且不影响手感的产品...
这款 Cordura 保护壳仍然拥有安全的口袋来放置证件、信用卡和现金等物品,同时还为用...
对于 MacBook 用户来说,找到保护性能出色并且造型好看的保护壳并不是一件容易的事。
目前无法确定苹果会如何基于增强现实技术来进行布局,但可以肯定的是苹果已经在路上了...
据匿名爆料者透露,苹果已经在伦敦组建了一个新的团队。
117145阅读
手机一直处于耳机模式,外放都没声音
注册时间 最后登录
在线时间162 小时 UID
主题帖子人气
青苹果, 积分 77, 距离下一级还需 123 积分
有出现过类似情况的吗
好像是从听完歌拔出来没声音的
旁边按钮调节一直显示耳机模式
其他APP不插耳机也没声音
没有摁到静音
耳机插孔里没有杂物,重启啥的也不好使
难道以后要一直带着耳机?
注册时间 最后登录
在线时间1603 小时 UID
主题帖子人气
恢复出厂试试
注册时间 最后登录
在线时间150 小时 UID
主题帖子人气
我的前天也出现这个情况了,用的昂达的一个耳机,拔下来后一直是耳机状态,后来用原装耳机插了一下,拔出来就好了
注册时间 最后登录
在线时间89 小时 UID
主题帖子人气
以前我也碰到过这种情况,就让我来告诉你我是怎么处理的
首先得确保你有没有用耳机防尘塞,要是用了就可以不用看我下面这段话了
由于我以前没用防尘塞,手机放口袋里,裤子里的棉絮掉进耳机孔了,就出现了楼主的这种情况,
后来我用牙签把里面的棉絮挑出来后就正常了
希望我的回答能帮助你
注册时间 最后登录
在线时间162 小时 UID
主题帖子人气
多谢回答,但是这些方法没用回3楼HelloDJJ于半小时前发表的: 以前我也碰到过这种情况,就让我来告诉你我是怎么处理的
首先得确保你有没有用耳机防尘塞,要是用了就可以不用看我下面这段话了
由于我以前没用防尘塞,手机放口袋里,裤子里的棉絮掉进耳机孔了,就出现了楼主的这种情况,
后来我......
注册时间 最后登录
在线时间162 小时 UID
主题帖子人气
试过各种比如什么耳机插孔啊模式啊重启什么越狱后删文件的都不管用以后,竟然用把sim 卡拔出再插入的方法解决了
注册时间 最后登录
在线时间20 小时 UID
主题帖子人气
注册时间 最后登录
在线时间36 小时 UID
主题帖子人气
清洗接口无效的话就耳机检测电路有问题。送修吧
注册时间 最后登录
在线时间1343 小时 UID
主题帖子人气
告诉你问题在哪里,尾插出问题了,用牙签弄下里面,不行就换尾插回楼主tlf521yc于昨天 20:51发表的: 有出现过类似情况的吗
好像是从听完歌拔出来没声音的
旁边按钮调节一直显示耳机模式
其他APP不插耳机也没声音
没有摁到静音
耳机插孔里没有杂物,重启啥的也不好使
难道以后要一直带......
注册时间 最后登录
在线时间1554 小时 UID
主题帖子人气
试过各种比如什么耳机插孔啊模式啊重启什么越狱后删文件的都不管用以后,竟然用把sim 卡拔出再插入的方法解 ...
感谢分享,还真好了。
威锋旗下产品
Hi~我是威威!
沪公网安备 29号 | 沪ICP备号-1
新三板上市公司威锋科技(836555)
增值电信业务经营许可证:
Powered by Discuz!Android音乐播放模式切换-外放、听筒、耳机-android100学习网
Android音乐播放模式切换-外放、听筒、耳机
最近比较忙,好久都没有更新博客! 最近由于项目需求要做音乐播放模式的切换,经过好多次尝试,发现这里面满满的都是坑啊,所以就写一篇日志记录下来,也给大家分享下遇到的坑及解决办法.
最近比较忙,好久都没有更新博客!
最近由于项目需求要做音乐播放模式的切换,经过好多次尝试,发现这里面满满的都是坑啊,所以就写一篇日志记录下来,也给大家分享下遇到的坑及解决办法.
在聊天场景中,收到对方语音时,用户可以选择外放播放,也可以选择插入耳机收听.更人性化一点当用户把手机靠近耳朵时屏幕关闭自动切换到听筒中播放,播放完毕后拿开手机屏幕自动点亮.比如微信就是如此.
从上面场景中我们可以得出我们需要的要点:
播放模式切换:外放&—-&耳机
播放模式切换:外放&—-&听筒
屏幕操作:亮屏&—-&息屏&—-&亮屏
从需求分析我们可以得出需要代码进行控制的有:
音乐播放控制
外放,耳机,听筒之间的切换
屏幕的息屏与亮屏
音乐播放控制
音乐播放控制最简单,直接使用MediaPlayer即可,为了更好地与界面代码分离以及更好控制音乐,这里写了一个控制类:PlayerManager,如下:
* 音乐播放管理类
* Created by DevWiki on
public class PlayerManager {
private static PlayerManager playerM
private MediaPlayer mediaP
private PlayC
private String fileP
public static PlayerManager getManager(){
if (playerManager == null){
synchronized (PlayerManager.class){
playerManager = new PlayerManager();
return playerM
private PlayerManager(){
this.context = MyApplication.getContext();
mediaPlayer = new MediaPlayer();
* 播放回调接口
public interface PlayCallback{
/** 音乐准备完毕 */
void onPrepared();
/** 音乐播放完成 */
void onComplete();
/** 音乐停止播放 */
void onStop();
* 播放音乐
* @param path 音乐文件路径
* @param callback 播放回调函数
public void play(String path, final PlayCallback callback){
this.filePath =
this.callback =
mediaPlayer.reset();
mediaPlayer.setDataSource(context, Uri.parse(path));
mediaPlayer.prepare();
mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
public void onPrepared(MediaPlayer mp) {
callback.onPrepared();
mediaPlayer.start();
} catch (IOException e) {
e.printStackTrace();
* 停止播放
public void stop(){
if (isPlaying()){
mediaPlayer.stop();
callback.onStop();
} catch (IllegalStateException e) {
e.printStackTrace();
* 是否正在播放
* @return 正在播放返回true,否则返回false
public boolean isPlaying() {
return mediaPlayer != null && mediaPlayer.isPlaying();
为了方便获取Context,覆写了Application类如下:
* APP的Application
* Created by DevWiki on
public class MyApplication extends Application {
private static C
public void onCreate() {
super.onCreate();
* 获取APP的Context方便其他地方调用
public static Context getContext(){
外放,耳机,听筒之间的切换
在Android系统中是用AudioManager来管理播放模式的,通过AudioManager.setMode()方法来实现.
在setMode()方法中有以下几种对应不同的播放模式:
MODE_NORMAL: 普通模式,既不是铃声模式也不是通话模式
MODE_RINGTONE:铃声模式
MODE_IN_CALL:通话模式
MODE_IN_COMMUNICATION:通信模式,包括音/视频,VoIP通话.(3.0加入的,与通话模式类似)
播放音乐的对应的就是MODE_NORMAL, 如果使用外放播则调用audioManager.setSpeakerphoneOn(true)即可.
若使用耳机和听筒,则需要先设置模式为MODE_IN_CALL(3.0以前)或MODE_IN_COMMUNICATION(3.0以后).
需要权限android.permission.MODIFY_AUDIO_SETTINGS
为什么在3.0以后设置模式为MODE_IN_COMMUNICATION,而不设置为MODE_IN_CALL?
经验证在华为的某些机型中,设置MODE_IN_CALL根本不起作用.
故在PlayerManager类中持有一个AudioManager变量,并添加如下几个方法:
audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
* 切换到外放
public void changeToSpeaker(){
audioManager.setMode(AudioManager.MODE_NORMAL);
audioManager.setSpeakerphoneOn(true);
* 切换到耳机模式
public void changeToHeadset(){
audioManager.setSpeakerphoneOn(false);
* 切换到听筒
public void changeToReceiver(){
audioManager.setSpeakerphoneOn(false);
if (Build.VERSION.SDK_INT &= Build.VERSION_CODES.HONEYCOMB){
audioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
audioManager.setMode(AudioManager.MODE_IN_CALL);
如何判断用户是否插入耳机呢?
在插入或者拔出耳机时系统会发出Action为Intent.ACTION_HEADSET_PLUG的广播,并且该广播不能使用静态接收器处理,故写一个广播接收器处理耳机事件即可.
class HeadsetReceiver extends BroadcastReceiver{
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
switch (action){
//插入和拔出耳机会触发此广播
case Intent.ACTION_HEADSET_PLUG:
int state = intent.getIntExtra("state", 0);
if (state == 1){
playerManager.changeToHeadset();
} else if (state == 0){
playerManager.changeToSpeaker();
屏幕的息屏与亮屏
屏幕息屏与亮屏有个前提是正确判断用户是否靠近听筒,如何判断?
现在几乎每个手机都有距离感应器,通过举例感应器可获得距离.距离感应器由SensorManager管理:
sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
sensor = sensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY);
sensorManager.registerListener(this, sensor, SensorManager.SENSOR_DELAY_NORMAL);
注册监听的方法的最后一个参数是敏感度,敏感度越高越费电,此处选择一般敏感度即可.此外Activity还需实现SensorEventListener接口,覆写其方法:
public void onSensorChanged(SensorEvent event) {
float value = event.values[0];
if (playerManager.isPlaying()){
if (value == sensor.getMaximumRange()) {
playerManager.changeToSpeaker();
setScreenOn();
playerManager.changeToReceiver();
setScreenOff();
if(value == sensor.getMaximumRange()){
playerManager.changeToSpeaker();
setScreenOn();
在Android系统中硬件的工作状态的控制由PowerManager与WakeLock掌管.PowerManager通过不同的WakeLock来控制CPU,屏幕,键盘等硬件的工作状态.
powerManager = (PowerManager) getSystemService(POWER_SERVICE);
wakeLock = powerManager.newWakeLock(PowerManager.PROXIMITY_SCREEN_OFF_WAKE_LOCK, TAG);
注意:需要权限android.Manifest.permission.DEVICE_POWER和android.permission.WAKE_LOCK
其中第一个参数代表控制级别,可选值有:
PARTIAL_WAKE_LOCK : CPU运行,屏幕和键盘可能关闭
SCREEN_DIM_WAKE_LOCK : 屏幕亮,键盘灯可能关闭
SCREEN_BRIGHT_WAKE_LOCK : 屏幕全亮,键盘灯可能关闭
FULL_WAKE_LOCK : 屏幕和键盘灯全亮
PROXIMITY_SCREEN_OFF_WAKE_LOCK : 屏幕关闭,键盘灯关闭,CPU运行
DOZE_WAKE_LOCK : 屏幕灰显,CPU延缓工作
此处我们选取PROXIMITY_SCREEN_OFF_WAKE_LOCK.WakeLock通过acquire()和release()方法上锁和解锁.
private void setScreenOff(){
if (wakeLock == null){
wakeLock = powerManager.newWakeLock(PowerManager.PROXIMITY_SCREEN_OFF_WAKE_LOCK, TAG);
wakeLock.acquire();
private void setScreenOn(){
if (wakeLock != null){
wakeLock.setReferenceCounted(false);
wakeLock.release();
wakeLock =
通过以上三个解决方案,然后运行程序可知基本满足功能需求.但是有以下几个问题:
耳机模式下用手遮挡距离感应器会切换到听筒
三星Note,华为P,华为Mate系列会出现外放切换到听筒,听筒切换到外放出现卡顿现象
耳机切换到外放会出现丢失语音
三星,华为手机在熄灭屏幕是会调用Activity的onPause(),onStop()方法!!
解决新问题
耳机模式用手遮挡距离感应器问题
此问题只需在耳机模式下对距离感应器不做响应即可,在PlayerManager中添加:
* 耳机是否插入
* @return 插入耳机返回true,否则返回false
@SuppressWarnings("deprecation")
public boolean isWiredHeadsetOn(){
return audioManager.isWiredHeadsetOn();
然后修改距离感应器回调方法为:
public void onSensorChanged(SensorEvent event) {
float value = event.values[0];
if (playerManager.isWiredHeadsetOn()){
if (playerManager.isPlaying()){
if (value == sensor.getMaximumRange()) {
playerManager.changeToSpeaker();
setScreenOn();
playerManager.changeToReceiver();
setScreenOff();
if(value == sensor.getMaximumRange()){
playerManager.changeToSpeaker();
setScreenOn();
三星,华为听筒外放切换卡顿
这个问题只能采用折中的办法:重新播放
为何采用此方法?
短的语音本来就短,切换重播几乎不受影响
长得音乐一般不会用听筒听
不是所有的手机都会出现卡顿
故在PlayerManager中修改方法:
* 切换到听筒
public void changeToReceiver(){
if (isPlaying()){
changeToReceiverNoStop();
play(filePath, callback);
changeToReceiverNoStop();
* 切换到外放
public void changeToSpeaker(){
if (PhoneModelUtil.isSamsungPhone() || PhoneModelUtil.isHuaweiPhone()){
changeToSpeakerNoStop();
play(filePath, callback);
changeToSpeakerNoStop();
public void changeToSpeakerNoStop(){
audioManager.setMode(AudioManager.MODE_NORMAL);
audioManager.setSpeakerphoneOn(true);
耳机切换到外放会出现丢失语音
此问题由于耳机切换到外放需要一段时间导致,故解决此问题的方法是先暂停再续播.那么什么时候暂停什么时候续播呢?
查资料得知,在耳机拔出时系统还会发出Action为AudioManager.ACTION_AUDIO_BECOMING_NOISY的广播,且此广播比Intent.ACTION_HEADSET_PLUG要早,所以解决方案也出来了:
收到AudioManager.ACTION_AUDIO_BECOMING_NOISY时暂停播放,收到Intent.ACTION_HEADSET_PLUG并且附带的state=1时续播
三星,华为手机在熄灭屏幕是会调用Activity的onPause(),onStop()方法
这个问题嘛,其实也不算问题,但是值得注意.如果你在onStop()中做了某些释放资源的操作,那么在onStart()中就要重新获取,防止出现其他问题.
项目代码请点击此处:PlayMode
我的更多信息:DevWiki

我要回帖

更多关于 iphone6s外放声音小 的文章

 

随机推荐