App 出现的问题为:java
录制video 时,shutter sound的声音不统一,时有时无。ide
进入Camera应用--> 录像开始 --> 点击shutter时,无shutter sound --> 录像中止时,click shutter,无shutter sound --> 播放录制的视频 --> back键,返回到取景界面 --> 再次录像 ,有shutter sound.code
分析:视频
只要点击back键,再次录制视频的时候,shutter sound不是预期的结果,推断出在onResume()方法中,没有从preference.xml中取KEY_SHUTTER_SOUND的值,而发生来默认行为。查看代码xml
String cameraSound = mPreferences.getString(CameraSettings.KEY_SHUTTER_SOUND, getString(R.string.pref_camera_shutter_sound_default)); if (cameraSound != null) { int shutterSound = cameraSound.equals("on") ? 1 : 0; mCameraDevice.setCameraShutterSound(shutterSound); }
发现上述代码出如今onCreate()方法中,而onResume()无相似的代码。将此代码从onCreate()方法中move到onResume()方法中,问题获得解决。生命周期
至此深入地理解了Activity的生命周期。get
从上图可知, 第一次启动Camera,进入取景界面,并开始录像,onCreate()方法得以执行,则shuttersound的value会从preference.xml中取得,接着用户点击播放录制的视频,而后back键回到取景的界面,再次录像,本次click shutter的时候,执行的是onResume()方法,而onResume()方法中shuttersound并无从preference.xml中进行取值,而是调用默认的string
R.string.pref_camera_shutter_sound_default
而我已经在string.xml中设定该值为on。it