首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

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

2012-09-10 
Android 使用 ToneGenerator 编写按键发声功能private ToneGenerator mToneGeneratorprivate Object mTon

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;                }            }        }}
?

热点排行