private ToneGenerator mToneGenerator;

private Object mToneGeneratorLock = new Object();//监视器对象锁

private boolean mDTMFToneEnabled; //按键操作音

private static final int TONE_LENGTH_MS = 150;//延迟时间

void playTone(int tone) {

// TODO 播放按键声音

if (!mDTMFToneEnabled) {

return;

}

AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);

int ringerMode = audioManager.getRingerMode();

if ((ringerMode == AudioManager.RINGER_MODE_SILENT)

|| (ringerMode == AudioManager.RINGER_MODE_VIBRATE)) {//静音或震动时不发出按键声音

return;

}

synchronized(mToneGeneratorLock) {

if (mToneGenerator == null) {

Log.w(TAG, "playTone: mToneGenerator == null, tone: "+tone);

return;

}

mToneGenerator.startTone(tone, TONE_LENGTH_MS);//发声

}

}

protected void onResume(){

super.onResume();

mDTMFToneEnabled = Settings.System.getInt(getContentResolver(),

Settings.System.DTMF_TONE_WHEN_DIALING, 1) == 1;//获取系统参数“按键操作音”是否开启

synchronized(mToneGeneratorLock) {

if (mToneGenerator == null) {

try {

mToneGenerator = new ToneGenerator(AudioManager.STREAM_MUSIC, 80);

setVolumeControlStream(AudioManager.STREAM_MUSIC);

} catch (RuntimeException e) {

Log.w(TAG, "Exception caught while creating local tone generator: " + e);

mToneGenerator = null;

}

}

}

}

?

android的发音功能实现,Android 使用 ToneGenerator 编写按键发声功能相关推荐

  1. android列表实现置顶,Android利用RecyclerView实现全选、置顶和拖拽功能示例

    Android利用RecyclerView实现全选.置顶和拖拽功能示例 发布时间:2020-08-23 16:26:42 来源:脚本之家 阅读:159 作者:爱开发 前言 今天给大家分享是如何在Rec ...

  2. Android系统移植与调试之-------如何修改Android设备添加重启、飞行模式、静音模式等功能(一)...

    1.首先先来看一下修改前后的效果对比图 修改之后的图片 确认重启界面 具体的修改内容在下一篇中具体介绍. Android系统移植与调试之------->如何修改Android设备添加重启.飞行模 ...

  3. android短信功能裁剪,Android短信发送功能实现技巧分享

    如现在启动一模拟器id 号为5554,运行cmd telnet localhost 5554 输入help 可以看到很多用于模拟器中的功能命令 gsm call 134343434   // 便是呼叫 ...

  4. android 新浪财经截屏分享,[图]Android 12截图曝光:启用全新UI 增强隐私保护功能...

    原标题:[图]Android 12截图曝光:启用全新UI 增强隐私保护功能 来源:cnBeta.COM Android 12 有望在今年秋季上线,相关的开发者预览版和 Beta 版本有望在本月晚些时候 ...

  5. 三行代码接入,社交软件打字时底下弹出的表情布局,自定义ViewPager+页面点标+各种功能的android小框架。...

    (转载请声明出处:http://www.cnblogs.com/linguanh/) 前言: 接上次分享的 ListView 动态加载类,入口:http://www.cnblogs.com/lingu ...

  6. android 脸部识别之3D,2018年高通将推出整合3D脸部识别功能的Android手机芯片

    根据国外科技网站CNET的报导,手机芯片大厂高通(Qualcomm)目前打算在针对Android手机设计的处理器产品中,加入支持红外线3D传感技术.也就是说,未来Android手机从处理器方面就会支持 ...

  7. android中布局全屏,怎么在Android 应用中实现一个全屏与非全屏功能

    怎么在Android 应用中实现一个全屏与非全屏功能 发布时间:2020-12-04 17:31:45 来源:亿速云 阅读:135 作者:Leah 怎么在Android 应用中实现一个全屏与非全屏功能 ...

  8. React Native 轻松集成分享功能(Android 篇)

    关于推送的集成请参考这篇文章,关于统计的集成请参考这篇文章,本篇文章将引导你集成分享功能. 在集成插件之前,需要在各大开放平台上成功注册应用,并通过审核(支持 3 个可选的主流平台).支持的平台如下: ...

  9. Android仿支付宝UI功能开发,Android 自定义view仿支付宝咻一咻功能

    支付宝上有一个咻一咻的功能,就是点击图片后四周有水波纹的这种效果,今天也写一个类似的功能. 效果如下所示: 思路: 就是几个圆的半径不断在变大,这个可以使用动画缩放实现,还有透明动画 还有就是这是好几 ...

最新文章

  1. JS计算起点坐标到终点坐标的驾车距离和驾车时间
  2. 组策略分发软件全攻略
  3. Linux系统下GCC编译错误:“undefined reference to ‘sqrt‘”
  4. 函数传参string_JavaScript 高阶函数入门浅析
  5. SqlServer优化:当数据量查询不是特别多,但数据库服务器的CPU资源一直100%时,如何优化?...
  6. linux编译测试代码,rtc在linux上的测试代码
  7. python - 接口自动化测试 - MysqlUtil - 数据库操作封装
  8. AWVS14.7破解版免费获取
  9. 50个C/C++面试题
  10. 如何在word中的图片上画圈标注_怎么在word画圈标注 如何在word图片中进行画圈标示...
  11. 设定个人发展目标和计划
  12. 经纬财富:乐山稳健投资之道,积小胜为大胜
  13. 贤弟单腾,因崔思婷,机器人类打字~~~~~~
  14. 2020的Android凉了?聊聊 Android 现状及出路!
  15. 当语音遇到人工智能,走进《智能语音时代》
  16. 学生认证免费使用pycharm专业版
  17. MySQL通过sql语句获取当前日期|时间|时间戳
  18. 干货分享 | 如何在业余时间学习数据分析?
  19. MY资源网址整合记录
  20. ZXCK在线翻译效果截图

热门文章

  1. 赠书 !豆瓣 9 分以上的书籍,成为 Java 大佬必看!
  2. “区块链+农业”助力乡村振兴
  3. 这8种武器点亮程序员的个人品牌
  4. Java语言的出现背景、主要特点、发展历程以及Java技术的应用
  5. 【gdoi2018 day1】小学生图论题
  6. STM32学习笔记01---使用仿真器下载程序
  7. IDEA运行Java Applet程序
  8. 公众号文章和菜单栏如何直接点击拨打客服电话号码?
  9. android电话拦截软件下载,骚扰电话拦截器
  10. python入门day06列表