Android 使用 ToneGenerator 编写按键发声功能_移动开发_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > 移动开发 > Android 使用 ToneGenerator 编写按键发声功能

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

 2010/11/19 9:20:12  ggggnuirgw  http://ffly.javaeye.com  我要评论(0)
  • 摘要:privateToneGeneratormToneGenerator;privateObjectmToneGeneratorLock=newObject();//监视器对象锁privatebooleanmDTMFToneEnabled;//按键操作音privatestaticfinalintTONE_LENGTH_MS=150;//延迟时间voidplayTone(inttone){//TODO播放按键声音if(!mDTMFToneEnabled){return;
  • 标签:Android编写按键发声功能 ToneGenerator

	
	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;
                }
            }
        }
	}
?
发表评论
用户名: 匿名