我开发了一个自定义相机应用程序,它在除 Sony Xperia Neo L 之外的所有其他设备上都能正常工作。
问题是我从相机返回的相机预览非常慢或滞后。我早些时候在旧的 Xperia 手机上运行相同的代码没有任何错误并且滞后,所以我对为什么会出现这个问题感到有点惊讶。
我在这些执行中发现的唯一变化是 logcat 在启动相机后显示以下警告和一些奇怪的事情
05-24 11:20:57.766: I/CameraService(138): Opening camera 0
05-24 11:20:58.196: E/SEMC Camera HAL(138): Store old settings
05-24 11:20:58.196: E/mm-camera(138): config_proc_CAMERA_SET_PARM_FPS: 30
05-24 11:20:58.196: E/SEMC Camera HAL(138): Store old settings
05-24 11:20:58.196: E/mm-camera(138): config_proc_CAMERA_SET_PARM_FPS: 30
05-24 11:20:58.296: E/mm-camera(138): config_proc_CAMERA_SET_PARM_FPS: 0
05-24 11:20:58.396: E/mm-camera(138): config_proc_CAMERA_SET_PARM_FPS: 30
05-24 11:20:58.486: E/mm-camera(138): config_proc_CAMERA_SET_PARM_FPS: 0
05-24 11:20:58.626: I/AwesomePlayer(138): setDataSource_l('/system/media/audio/ui/camera_click.ogg')
05-24 11:20:58.626: E/CMarlinMediator(123): Error : MarlinMediator Failed to get TrustedTime
05-24 11:20:58.636: I/AwesomePlayer(138): setDataSource_l('/system/media/audio/ui/VideoRecord.ogg')
05-24 11:20:58.646: E/CMarlinMediator(123): Error : MarlinMediator Failed to get TrustedTime
05-24 11:20:58.666: D/CameraService(138): getParameter
05-24 11:20:58.666: W/ServiceManager(138): Permission failure: com.sonyericsson.permission.CAMERA_EXTENDED from uid=10141 pid=11654
我试图用谷歌解决这个权限失败问题,但没有得到任何解决方案。
我已经在清单文件中提到了所需的权限,唯一的问题是 Neo L。这款手机中预装的相机应用程序运行良好,所以我猜硬件没有问题。请有人帮我解决这个问题。
编辑:打开相机后,我有以下代码
mCamera.setPreviewCallbackWithBuffer(new PreviewCallback() {
public synchronized void onPreviewFrame(byte[] data, Camera c) {
if (mCamera != null)
{
mCamera.addCallbackBuffer(mBuffer);
}
}
});