Camera AP有定义了低,中,高,精细几种quality。每个quality都有对应的MediaProfile,
MediaProfile里面包涵当前quality的mCameraId, mFileFormat,mVideoCodec,mFrameWidth,mFrameHeight,mFrameRate等信息。
camera启动后会针对每一个quality去加载对应的MediaProfile
流程如下:
Camera线程启动后会去initializeCameraPreferences(),在initializeCameraPreferences()中会根据前后mCameraId去判断每个quality是否有对应的mediaProfile
if(CamcorderProfile.hasProfile(mCameraId, CamcorderProfile.QUALITY_MTK_LOW)) {
supported.add(Integer.toString(CamcorderProfile.QUALITY_MTK_LOW));
}
if(CamcorderProfile.hasProfile(mCameraId, CamcorderProfile.QUALITY_MTK_HIGH)) {
supported.add(Integer.toString(CamcorderProfile.QUALITY_MTK_HIGH));
...
如果quality有对应的MediaProfile,那么在Camera AP里就会显示这个quality,