在项目中涉及到语音的一些处理,其中遇到了一些问题。在打完电话后重新进入项目调起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);
        }
    };

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

  1. java日志怎么实现_JAVA项目中怎么实现一个通用日志记录功能

    JAVA项目中怎么实现一个通用日志记录功能 发布时间:2020-11-21 17:04:50 来源:亿速云 阅读:53 作者:Leah 今天就跟大家聊聊有关JAVA项目中怎么实现一个通用日志记录功能, ...

  2. asp.net Web项目中使用Log4Net进行错误日志记录

    使用log4net可以很方便地为应用添加日志功能.应用Log4net,开发者可以很精确地控制日志信息的输出,减少了多余信息,提高了日志记录性能.同时,通过外部配置文件,用户可以不用重新编译程序就能改变 ...

  3. 计划将项目中使用entity framework的要点记录到改栏目下

    ef监控sql执行性能日志.http://www.cnblogs.com/CreateMyself/p/5277681.html http://123.122.205.38/cn_sql_server ...

  4. 在Spring Boot 项目中使用Spring AOP实现切面日志

    导语   大数据时代,数据来源是比较重要的.而日志作为用户操作.系统监控.业务分析等都比较重要的一个环节.能更好的使用日志显得尤为重要.那么在Spring Boot的项目中如何能更加高效的记录Cont ...

  5. 使用localStorage完成Vue项目中的历史搜索

    在一些电商项目中,我们经常会看到记录历史搜索的功能,如下图所示.我们今天来使用localStorage结合Vue来完成这一功能. 1.首先第一步就是获取到搜索框的值,并存入localStorage里面 ...

  6. canvas java 上传截图_在Vue项目中使用html2canvas生成页面截图并上传

    使用方法 项目中引入 npm install html2canvas html代码 //html代码 js代码 // 引入html2canvas import html2canvas from 'ht ...

  7. android studio 自动提示jni代码,如何将JNI(C/C++本机代码)添加到现有的Android Studio项目中...

    从现有项目中执行以下步骤: 1.修改build.gradle(模块应用程序)看起来像这样(很多变化!): apply plugin: 'com.android.model.application' m ...

  8. android使用webview上传文件,Android项目中如何在webview页面中上传文件

    Android项目中如何在webview页面中上传文件 发布时间:2020-11-26 15:56:27 来源:亿速云 阅读:68 作者:Leah 本篇文章为大家展示了Android项目中如何在web ...

  9. java fragment_Java Web Fragment在项目中使用方法详解

    Web Fragment 是什么 - 它是在 servlet 3.0开始支持的,可以把一个dy web项目拆分为多个项目,解耦合,使其在项目中开发效率提高,下面我演示简单的项目创建过程 用eclips ...

最新文章

  1. 031_MessageBox弹框
  2. wxWidgets:wxPropertyGrid类用法
  3. @async 默认线程池_springboot@Async默认线程池导致OOM问题
  4. 消息称苹果下代iPhone、iPad产品都将采用钛合金
  5. LINUX下简单制作QCOW2镜像
  6. 图论--最长路--洛谷P1807 最长路_NOI导刊2010提高(07)
  7. 最好的Java开发人员测试和集成工具
  8. vuex 的 action 传参问题
  9. html作业本,小鹅通作业本使用教程
  10. 四级英语作文大学生使用计算机,大学生四级英语作文范文
  11. 工时分析软件哪个好用?ECRS工时分析软件-精益人都在用的IE分析软件
  12. 易语言教你制作onoQQ机器人
  13. 13种常用按钮、文本框、表单等CSS样式
  14. 在python中画正态分布图像
  15. 华为交换机导入配置_华为交换机配置导入和导出
  16. warning C4183: ‘Cricle‘: member function definition looks like a ctor, but name does not match enclo
  17. oracle图书操作、sql语句查询+授权、视图、索引、表操作
  18. 日常小记-pdf扫描版和非扫描版区别
  19. 小学四年级数学上册计算机算题,四年级上册数学计算题大全
  20. 在Coordinatorlayout中使用RecyclerView导致recyclerview最后一个item显示不全的问题

热门文章

  1. MySQL系列教程(四)
  2. win7突然提示“windows无法连接到xxx”、thinkpad键盘触摸板失效解决
  3. python plc fx5u_三菱PLC的FX5U系列参数与定位点
  4. MySQL连接、SSL加密与密码插件
  5. 唯芸星童鞋的第一个博客。
  6. nasm做一个简单的操作系统写字本(1)
  7. 对接阿里云号码认证服务H5方案
  8. STM32定时器输入捕获,脉宽测量知识点
  9. Pocket 2003,Windows Mobile 5,Windows Mobile 6的部分区别
  10. IOS 代码修改故事版中的自动布局参数