Activityでは、動画を流す予定なので、ボタンの設置はできません。
そのため、値を取得した後に、start()を呼ぼうと思います。
java
1 2 @Override 3 public void onCreate() { 4 Log.e(TAG,"1"); 5 6 startBackgroundThread(); 7 if (mTextureView.isAvailable()) { 8 openCamera(mTextureView.getWidth(), mTextureView.getHeight()); 9 } else { 10 mTextureView.setSurfaceTextureListener(mSurfaceTextureListener); 11 } 12 } 13 14 @Override 15 public void onDestroy() { 16 Log.e(TAG,"2"); 17 // windowからViewを排除する 18 windowManager.removeView(views); 19 20 //onPause()のやつ2つ 21 closeCamera(); 22 stopBackgroundThread(); 23 24 // 削除作業を継続させる 25 super.onDestroy(); 26 } 27 28 @Override 29 public IBinder onBind(Intent intent) { 30 Log.e(TAG,"3"); 31 32 //この下は本当はonCLickのコード 33 if (mIsRecordingVideo) { 34 stopRecordingVideo(); 35 } else { 36 startRecordingVideo(); 37 } 38 39 return null; 40 } 41 42 43 private CameraDevice.StateCallback mStateCallback = new CameraDevice.StateCallback() { 44 45 @Override 46 public void onOpened(@NonNull CameraDevice cameraDevice) { 47 Log.e(TAG,"11"); 48 mCameraDevice = cameraDevice; 49 startPreview(); 50 mCameraOpenCloseLock.release(); 51 if (null != mTextureView) { 52 configureTransform(mTextureView.getWidth(), mTextureView.getHeight()); 53 } 54 } 55 } 56 57 private void configureTransform(int viewWidth, int viewHeight) { 58 if (null == mTextureView || null == mPreviewSize ) { 59 return; 60 } 61 WindowManager windowManager = (WindowManager) getSystemService(Context.WINDOW_SERVICE); 62 int rotation = windowManager.getDefaultDisplay().getRotation(); 63 Matrix matrix = new Matrix(); 64 RectF viewRect = new RectF(0, 0, viewWidth, viewHeight); 65 RectF bufferRect = new RectF(0, 0, mPreviewSize.getHeight(), mPreviewSize.getWidth()); 66 float centerX = viewRect.centerX(); 67 float centerY = viewRect.centerY(); 68 if (Surface.ROTATION_90 == rotation || Surface.ROTATION_270 == rotation) { 69 bufferRect.offset(centerX - bufferRect.centerX(), centerY - bufferRect.centerY()); 70 matrix.setRectToRect(viewRect, bufferRect, Matrix.ScaleToFit.FILL); 71 float scale = Math.max( 72 (float) viewHeight / mPreviewSize.getHeight(), 73 (float) viewWidth / mPreviewSize.getWidth()); 74 matrix.postScale(scale, scale, centerX, centerY); 75 matrix.postRotate(90 * (rotation - 2), centerX, centerY); 76 } 77 mTextureView.setTransform(matrix); 78 79//ここで、mTextureViewが、nullじゃなければ、startするようにしようと思います。 80 } 81 82 83 84
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/08/04 03:52
2017/08/04 03:58
2017/08/04 04:17
2017/08/04 05:11
2017/08/04 05:28
2017/08/04 05:30
2017/08/04 06:12
2017/08/04 06:18
2017/08/04 06:42
2017/08/04 06:42