のプレビューを取得するにはどうすればカメラからのプレビューを取得するためにその例を使用:はカメラ
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.List;
import android.app.Activity;
import android.hardware.Camera;
import android.hardware.Camera.Size;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.TextureView;
import android.widget.FrameLayout;
import android.view.TextureView;
import android.widget.ImageView;
import android.graphics.Bitmap;
import android.graphics.ImageFormat;
import android.graphics.PixelFormat;
import android.graphics.SurfaceTexture;
public class MainActivity extends Activity implements
TextureView.SurfaceTextureListener, Camera.PreviewCallback {
static {
System.loadLibrary("JNIProcessor");
}
private final String TAG="LiveFeature";
private Camera mCamera;
private byte[] mVideoSource;
private TextureView mTextureView;
private String[] ResolutionList;
private Menu AppMenu;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_live_feature);
mTextureView.setSurfaceTextureListener(this);
}
@Override
public void onSurfaceTextureSizeChanged(SurfaceTexture pSurface,
int pWidth, int pHeight) {
// Ignored
}
@Override
public void onSurfaceTextureUpdated(SurfaceTexture pSurface) {
// Ignored
}
@Override
public void onPreviewFrame(byte[] pData, Camera pCamera) {
}
}
Camera.PreviewCallbackが廃止されているようだと私はandroid.hardware.camera2使用する必要があります。問題は、私は未処理のデータバイトを取得するプレビューコールバック関数を見つけることができません。 私はちょうど表面にレンダリングせずにカメラからフレームをグラブし、それをJNI関数に入れるだけです。
* deprecated * hardware.Camera APIを引き続き使用できます。新しい** camera2 ** APIはより強力ですが、古いデバイスでは機能しません。いずれにしても、古いカメラAPIと新しいカメラAPI(実際には基本的なAndroid開発者のガイドライン)では、カメラのプレビューを画面に表示する必要があります。 –
@AlexCohn実際には、プレビューなしでAndroid 6.0.1まで写真を撮ることができました。 – m0skit0