播放声音的问题
听起来像是KeypressSpacebar.ogg或KeypressStandard.ogg
/frameworks/base/core/res/res/xml/audio_assets.xml
<asset id="FX_KEYPRESS_SPACEBAR" file="KeypressSpacebar.ogg"/>
播放的地方为
/packages/inputmethods/LatinIME/java/src/com/android/inputmethod/latin/AudioAndHapticFeedbackManager.java
mAudioManager.playSoundEffect(sound, mSettingsValues.mKeypressSoundVolume);
依赖条件
private boolean reevaluateIfSoundIsOn() {
if (mSettingsValues == null || !mSettingsValues.mSoundOn || mAudioManager == null) {
return false;
}
return mAudioManager.getRingerMode() == AudioManager.RINGER_MODE_NORMAL;
}
调用者
/packages/inputmethods/LatinIME/java/src/com/android/inputmethod/latin/LatinIME.java
在AudioManager中增加如下log
Log.e(TAG,"qixuliang playSoundEffect 2 :" + effectType + " ok" + getContext().getOpPackageName());
得到的调用栈如下:
06-14 16:18:36.317 E/AudioManager( 2010): qixuliang playSoundEffect 2 :5 okcom.android.settings
06-14 16:18:36.318 E/AudioManager( 2010): java.lang.Throwable
06-14 16:18:36.318 E/AudioManager( 2010): at android.media.AudioManager.playSoundEffect(AudioManager.java:1968)
06-14 16:18:36.318 E/AudioManager( 2010): at com.android.settings.CryptKeeper.notifyUser(CryptKeeper.java:391)
06-14 16:18:36.318 E/AudioManager( 2010): at com.android.settings.CryptKeeper.-wrap5(CryptKeeper.java)
06-14 16:18:36.318 E/AudioManager( 2010): at com.android.settings.CryptKeeper$3.handleMessage(CryptKeeper.java:348)
06-14 16:18:36.318 E/AudioManager( 2010): at android.os.Handler.dispatchMessage(Handler.java:102)
06-14 16:18:36.318 E/AudioManager( 2010): at android.os.Looper.loop(Looper.java:154)
06-14 16:18:36.318 E/AudioManager( 2010): at android.app.ActivityThread.main(ActivityThread.java:6132)
06-14 16:18:36.318 E/AudioManager( 2010): at java.lang.reflect.Method.invoke(Native Method)
06-14 16:18:36.318 E/AudioManager( 2010): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
06-14 16:18:36.318 E/AudioManager( 2010): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
听起来像是KeypressSpacebar.ogg或KeypressStandard.ogg
/frameworks/base/core/res/res/xml/audio_assets.xml
<asset id="FX_KEYPRESS_SPACEBAR" file="KeypressSpacebar.ogg"/>
播放的地方为
/packages/inputmethods/LatinIME/java/src/com/android/inputmethod/latin/AudioAndHapticFeedbackManager.java
mAudioManager.playSoundEffect(sound, mSettingsValues.mKeypressSoundVolume);
依赖条件
private boolean reevaluateIfSoundIsOn() {
if (mSettingsValues == null || !mSettingsValues.mSoundOn || mAudioManager == null) {
return false;
}
return mAudioManager.getRingerMode() == AudioManager.RINGER_MODE_NORMAL;
}
调用者
/packages/inputmethods/LatinIME/java/src/com/android/inputmethod/latin/LatinIME.java
在AudioManager中增加如下log
Log.e(TAG,"qixuliang playSoundEffect 2 :" + effectType + " ok" + getContext().getOpPackageName());
得到的调用栈如下:
06-14 16:18:36.317 E/AudioManager( 2010): qixuliang playSoundEffect 2 :5 okcom.android.settings
06-14 16:18:36.318 E/AudioManager( 2010): java.lang.Throwable
06-14 16:18:36.318 E/AudioManager( 2010): at android.media.AudioManager.playSoundEffect(AudioManager.java:1968)
06-14 16:18:36.318 E/AudioManager( 2010): at com.android.settings.CryptKeeper.notifyUser(CryptKeeper.java:391)
06-14 16:18:36.318 E/AudioManager( 2010): at com.android.settings.CryptKeeper.-wrap5(CryptKeeper.java)
06-14 16:18:36.318 E/AudioManager( 2010): at com.android.settings.CryptKeeper$3.handleMessage(CryptKeeper.java:348)
06-14 16:18:36.318 E/AudioManager( 2010): at android.os.Handler.dispatchMessage(Handler.java:102)
06-14 16:18:36.318 E/AudioManager( 2010): at android.os.Looper.loop(Looper.java:154)
06-14 16:18:36.318 E/AudioManager( 2010): at android.app.ActivityThread.main(ActivityThread.java:6132)
06-14 16:18:36.318 E/AudioManager( 2010): at java.lang.reflect.Method.invoke(Native Method)
06-14 16:18:36.318 E/AudioManager( 2010): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
06-14 16:18:36.318 E/AudioManager( 2010): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)