カメラからのビデオを少し変更したいと思います。 クラスSurfaceViewを拡張し、SurfaceHolder.Callbackを実装するクラスを使用しています。ビデオストリームをリアルタイムで変更する方法は?
今、私はまだこの変更を行う方法を見つけることができません。 どうすればいいですか?
カメラからのビデオを少し変更したいと思います。 クラスSurfaceViewを拡張し、SurfaceHolder.Callbackを実装するクラスを使用しています。ビデオストリームをリアルタイムで変更する方法は?
今、私はまだこの変更を行う方法を見つけることができません。 どうすればいいですか?
これは、リアルタイムで複雑で難しいものです。基本的には、カメラデータを取得して変更し、それをSurfaceViewに書き込む必要があります。そしてあなたは現実的にそれを行うのに0.5秒かかる、そうでなければ遅れは耐え難い。
通常、カメラにバインドされたビューを提供してからカメラの画像データの2番目のコピーを1秒間に何回か取得し、追加の画像を重ねて表示することで、カメラのビュー(ZXingバーコードスキャナと考える)最初のビューの上にあるデータ。
SurfaceViewの代わりにSurfaceTextureを試して、メソッドonFrameAvailable(...)を使用してSurfaceTexture.OnFrameAvailableListenerインターフェイスを実装できます。ビデオフレームの到着時に、Surfaceはこのメソッドをコールバックし、現在のフレームデータを取得できます。
PlsはAndroid CameraのPanoramaActivityクラスを参照しています。サンプルコードのAPKソースコードです。