分享到:

西安雁塔兆隆计算机培训中心西安软件开发,西安java培训,全国领先的软件开发培训

联系资料

西安雁塔兆隆计算机培训中心
所在地区:
陕西省 西安市
公司主页:
暂无
电话号码:
029-*******
传真号码:
暂无
联 系 人:
王老师
移动电话:
1592*******
电子邮箱:
暂无

Android 使用 ToneGenerator 编写按键发声功能

发布于:2013年01月01日 来源:www.szfuhai.com
[摘要]Java代码 private ToneGenerator mToneGenerator; private Object mToneGeneratorLock = new Object();//监视器对象锁 private boolean mDTMFToneEnabled; //按键操作音 private static final int TONE_LENGTH_MS = 150;//延迟时间 void playTone(int tone)

 Java代码

  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(***_SERVICE);

  int ringerMode = ***gerMode();

  if ((ringerMode == ***_MODE_SILENT)

  || (ringerMode == ***_MODE_VIBRATE)) {//静音或震动时不发出按键声音

  return;

  }

  synchronized(mToneGeneratorLock) {

  if (mToneGenerator == null) {

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

  return;

  }

  ***one(tone, TONE_LENGTH_MS);//发声

  }

  }

  protected void onResume(){

  ***me();

  mDTMFToneEnabled = ***(getContentResolver(),

  ***_TONE_WHEN_DIALING, 1) == 1;//获取系统参数“按键操作音”是否开启

  synchronized(mToneGeneratorLock) {

  if (mToneGenerator == null) {

  try {

  mToneGenerator = new ToneGenerator(***_MUSIC, 80);

  setVolumeControlStream(***_MUSIC);

  } catch (RuntimeException e) {

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

  mToneGenerator = null;

  }

  }

  }

  }