カスタム カメラ アプリケーションを開発しましたが、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
このアクセス許可の失敗の問題について Google で調べてみましたが、解決策はありませんでした。
マニフェスト ファイルで必要なアクセス許可については既に説明しましたが、問題は Neo L のみです。この電話にプリインストールされているカメラ アプリケーションは正常に動作するため、ハードウェアに問題はないと思います。誰かがこれについて私を助けてください。
編集:カメラを開いた後、次のコードがあります
mCamera.setPreviewCallbackWithBuffer(new PreviewCallback() {
public synchronized void onPreviewFrame(byte[] data, Camera c) {
if (mCamera != null)
{
mCamera.addCallbackBuffer(mBuffer);
}
}
});