您的位置:首页 > 其它

关于AudioManager在项目中遇到的一些问题的记录

2017-03-20 16:58 399 查看
在项目中涉及到语音的一些处理,其中遇到了一些问题。在打完电话后重新进入项目调起TTS,语音从话筒中出来,不从扩音器中出来,audiofocus变成了-2,并且没有重新获取。解决方案为:监听电话,手机空闲设置模式为speakeron,手机挂起是释放audiofocus。

代码如下:

mPhoneManager = ((TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE));

mPhoneManager.listen(mPhoneStateListener,PhoneStateListener.LISTEN_CALL_STATE);

private PhoneStateListener mPhoneStateListener = new PhoneStateListener(){

        @Override

        public void onCallStateChanged(int state, String incomingNumber) {

            switch (state) {

                case TelephonyManager.CALL_STATE_IDLE:

                    Log.d(TAG, "手机空闲");

                    mAudioManager.setSpeakerphoneOn(true);

                    break;

                case TelephonyManager.CALL_STATE_RINGING:

                    Log.d(TAG, "手机来电");

                    break;

                case TelephonyManager.CALL_STATE_OFFHOOK:

                    Log.d(TAG, "手机挂起");

                    mAudioManager.abandonAudioFocus(mAudioFocusListener);

                default:

                    break;

            }

            super.onCallStateChanged(state, incomingNumber);

        }

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