androidカメラコンポーネントのstartPreviewについて
最近androidでカメラコンポーネントを使ってアプリ開発していたときにハマった事.
androidの2系と4系で動き(使い方?)がまあまあ違うっぽい.
4系ではカメラオブジェクトに対して setPreviewDisplay せずに startPreview をかけると
android::status_t android::QCameraHardwareInterface::startPreview(): received startPreview, but preview window = null
のエラーが出るカンジがする.
とりあえずここ見たカンジ,displayがセットされてないとエラーになるっぽかったので,setDisplayしてからstartPreviewしたらエラーは消えた.
2系だと setPreviewDisplay しなくても動いてたんだけどなぁ..
で,setPreviewDisplay すると,引き数に渡したsurfaceholderのcanvasがロックされて
そこをいじりにいくと落ちるので,ダミーのsurfaceholderをかませてそこから
描画用のsurfaceholderのcanvasにPreviewを描画してみるっていうのを明日やってみる予定.
うまく行ったらまたblogに書こう.