类android.view.SurfaceHolder源码实例Demo

下面列出了怎么用android.view.SurfaceHolder的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: DanDanPlayForAndroid   文件: QRCodeReaderView.java
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
    SimpleLog.d(TAG, "surfaceChanged");

    if (holder.getSurface() == null) {
        SimpleLog.e(TAG, "Error: preview surface does not exist");
        return;
    }

    if (mCameraManager.getPreviewSize() == null) {
        SimpleLog.e(TAG, "Error: preview size does not exist");
        return;
    }

    mPreviewWidth = mCameraManager.getPreviewSize().x;
    mPreviewHeight = mCameraManager.getPreviewSize().y;

    mCameraManager.stopPreview();

    // Fix the camera sensor rotation
    mCameraManager.setPreviewCallback(this);
    mCameraManager.setDisplayOrientation(getCameraDisplayOrientation());

    mCameraManager.startPreview();
}
 
@Override
public void onCreate(SurfaceHolder holder) {
    if (Log.isLoggable(TAG, Log.DEBUG)) {
        Log.d(TAG, "onCreate");
    }
    super.onCreate(holder);

    mTime = new Time();

    dotXOffest = -1;
    dotYOffest = -1;

    doBackgroundComputation();

    init();
}
 
源代码3 项目: goprohero   文件: LiveStuffH4.java
@Override
 public void surfaceCreated(SurfaceHolder sh) {
     _mediaPlayer = new MediaPlayer();
     _mediaPlayer.setDisplay(_surfaceHolder);

     Context context = getApplicationContext();
//     Map<String, String> headers = getRtspHeaders();
     Uri source = Uri.parse(RTSP_URL);

     try {
         // Specify the IP camera's URL and auth headers.
      //   _mediaPlayer.setDataSource(context, source, headers);

         // Begin the process of setting up a video stream.
         _mediaPlayer.setOnPreparedListener(this);
         _mediaPlayer.prepareAsync();
     }
     catch (Exception e) {}
 }
 
源代码4 项目: grafika   文件: ContinuousCaptureActivity.java
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_continuous_capture);

    SurfaceView sv = (SurfaceView) findViewById(R.id.continuousCapture_surfaceView);
    SurfaceHolder sh = sv.getHolder();
    sh.addCallback(this);

    mHandler = new MainHandler(this);
    mHandler.sendEmptyMessageDelayed(MainHandler.MSG_BLINK_TEXT, 1500);

    mOutputFile = new File(getFilesDir(), "continuous-capture.mp4");
    mSecondsOfVideo = 0.0f;
    updateControls();
}
 
@SuppressWarnings("deprecation")
@Override
protected void onCreate(Bundle savedInstanceState) {
	getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON,
			WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
	super.onCreate(savedInstanceState);
	setContentView(R.layout.zg_activity_video_shoot);
	mFacing = (TextView) findViewById(R.id.tv_facing);
	mSurfaceView = (SurfaceView) findViewById(R.id.surfaceview_shoot);
	mShoot = (ImageView) findViewById(R.id.img_shoot);
	mChronometer = (Chronometer) findViewById(R.id.video_chronometer);
	mFacing.setOnClickListener(this);
	mShoot.setOnClickListener(this);

	initToggle();
	findViewById(R.id.iv_left).setOnClickListener(this);

	SurfaceHolder mHolder = mSurfaceView.getHolder();
	mHolder.addCallback(this);
	mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
}
 
源代码6 项目: MyHearts   文件: VideoView.java
public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
  mSurfaceWidth = w;
  mSurfaceHeight = h;
  boolean isValidState = (mTargetState == STATE_PLAYING);
  boolean hasValidSize = (mVideoWidth == w && mVideoHeight == h);
  if (mMediaPlayer != null && isValidState && hasValidSize) {
    if (mSeekWhenPrepared != 0)
      seekTo(mSeekWhenPrepared);
    start();
    if (mMediaController != null) {
      if (mMediaController.isShowing())
        mMediaController.hide();
      mMediaController.show();
    }
  }
}
 
源代码7 项目: Document-Scanner   文件: CameraBridgeViewBase.java
public void surfaceChanged(SurfaceHolder arg0, int arg1, int arg2, int arg3) {
    Log.d(TAG, "call surfaceChanged event");
    synchronized(mSyncObject) {
        if (!mSurfaceExist) {
            mSurfaceExist = true;
            checkCurrentState();
        } else {
            /** Surface changed. We need to stop camera and restart with new parameters */
            /* Pretend that old surface has been destroyed */
            mSurfaceExist = false;
            checkCurrentState();
            /* Now use new surface. Say we have it now */
            mSurfaceExist = true;
            checkCurrentState();
        }
    }
}
 
源代码8 项目: ar-location-based-android   文件: ARCamera.java
public void surfaceCreated(SurfaceHolder holder) {
    try {
        if (camera != null) {

            parameters = camera.getParameters();

            int orientation = getCameraOrientation();

            camera.setDisplayOrientation(orientation);
            camera.getParameters().setRotation(orientation);

            camera.setPreviewDisplay(holder);
        }
    } catch (IOException exception) {
        Log.e(TAG, "IOException caused by setPreviewDisplay()", exception);
    }
}
 
@Override
public void surfaceDestroyed(SurfaceHolder surfaceHolder) {
  if (rtmpCamera1.isRecording()) {
    rtmpCamera1.stopRecord();
    bRecord.setText(R.string.start_record);
    Toast.makeText(this,
        "file " + currentDateAndTime + ".mp4 saved in " + folder.getAbsolutePath(),
        Toast.LENGTH_SHORT).show();
    currentDateAndTime = "";
  }
  if (rtmpCamera1.isStreaming()) {
    rtmpCamera1.stopStream();
    button.setText(getResources().getString(R.string.start_button));
  }
  rtmpCamera1.stopPreview();
}
 
源代码10 项目: androidtestdebug   文件: CameraFragment.java
Preview(Context context) {
    super(context);

    mSurfaceView = new SurfaceView(context);
    addView(mSurfaceView);

    // Install a SurfaceHolder.Callback so we get notified when the
    // underlying surface is created and destroyed.
    mHolder = mSurfaceView.getHolder();
    mHolder.addCallback(this);
    mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
}
 
源代码11 项目: dttv-android   文件: MediaPlayer.java
/**
 * Sets the SurfaceHolder to use for displaying the video portion of the
 * media. This call is optional. Not calling it when playing back a video will
 * result in only the audio track being played.
 *
 * @param sh the SurfaceHolder to use for video display
 */
public void setDisplay(SurfaceHolder sh) {
    if (sh == null) {
        releaseDisplay();
        return;
    }
    mSurfaceHolder = sh;
    mSurface = sh.getSurface();
    native_set_video_surface(mSurface);
    updateSurfaceScreenOn();
}
 
源代码12 项目: wearabird   文件: GameView.java
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
	boolean retry = true;
	thread.setRunning(false);
	while (retry) {
		try {
			thread.join();
			retry = false;
		} catch (InterruptedException ignore) {
		}
	}
}
 
public void surfaceCreated(SurfaceHolder holder) {
    try {
        Camera.Parameters parameters = mCamera.getParameters();
        parameters.set("orientation", "portrait");
        mCamera.setParameters(parameters);
        mCamera.setDisplayOrientation(90);
        mCamera.setPreviewDisplay(holder);
        mCamera.startPreview();
    } catch (IOException e) {
        e.printStackTrace();
    }
}
 
源代码14 项目: AnimCubeAndroid   文件: AnimCube.java
@Override
public void surfaceCreated(SurfaceHolder holder) {
    synchronized (animThreadLock) {
        if (animThreadInactive || interrupted) {
            animThread.interrupt();
            animThread = new Thread(animRunnable);
            animThread.start();
        }
        repaint();
    }
}
 
源代码15 项目: JPPF   文件: FractalSurfaceView.java
@Override
public void run() {
  try {
    while (!stopped.get()) {
      if (!queue.isEmpty() || firstDraw.get()) {
        SurfaceHolder holder = getHolder();
        if (holder != null) {
          Canvas canvas = null;
          try {
            canvas = holder.lockCanvas();
            synchronized(holder) {
              doDraw(canvas);
            }
          } finally {
            if (canvas != null) holder.unlockCanvasAndPost(canvas);
          }
        }
      } else {
        synchronized(this) {
          wait(100L);
        }
      }
    }
  } catch(Exception e) {
    Log.e(LOG_TAG, "Exception in ViewThread.run()", e);
  }
}
 
源代码16 项目: SimplePomodoro-android   文件: BGSurfaceView.java
@Override
public void surfaceCreated(SurfaceHolder holder) {
	// TODO Auto-generated method stub
	_thread = new MainThread();
	_thread.setRunning(true);
	_thread.start();
}
 
源代码17 项目: Slide   文件: MediaVideoViewOld.java
private void initVideoView() {
    mVideoWidth = 0;
    mVideoHeight = 0;
    getHolder().addCallback(mSHCallback);
    getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
    setFocusable(true);
    setFocusableInTouchMode(true);
    requestFocus();
    mPendingSubtitleTracks = new Vector<>();
    mCurrentState = STATE_IDLE;
    mTargetState = STATE_IDLE;
}
 
源代码18 项目: imsdk-android   文件: JCameraView.java
@Override
public void surfaceCreated(SurfaceHolder holder) {
    LogUtil.i("JCameraView SurfaceCreated");
    new Thread() {
        @Override
        public void run() {
            CameraInterface.getInstance().doOpenCamera(JCameraView.this);
        }
    }.start();
}
 
源代码19 项目: SimplifyReader   文件: CaptureActivity.java
@Override
    public void surfaceCreated(SurfaceHolder holder) {
        if (holder == null) {
            Log.e(TAG_LOG, "*** WARNING *** surfaceCreated() gave us a null surface!");
        }
        if (!hasSurface) {
            hasSurface = true;
//            initCamera(holder);
        }
    }
 
源代码20 项目: letv   文件: VideoViewH264m3u8Hw.java
public void surfaceDestroyed(SurfaceHolder holder) {
    LogTag.i(VideoViewH264m3u8Hw.TAG, "mSHCallback:surfaceDestroyed()");
    VideoViewH264m3u8Hw.this.mSurfaceHolder = null;
    if (VideoViewH264m3u8Hw.this.mMediaController != null) {
        VideoViewH264m3u8Hw.this.mMediaController.hide();
    }
    VideoViewH264m3u8Hw.this.lastSeekWhenDestoryed = VideoViewH264m3u8Hw.this.getCurrentPosition();
    VideoViewH264m3u8Hw.this.release(false);
}
 
源代码21 项目: grafika   文件: RecordFBOActivity.java
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
    Log.d(TAG, "surfaceDestroyed holder=" + holder);

    // We need to wait for the render thread to shut down before continuing because we
    // don't want the Surface to disappear out from under it mid-render.  The frame
    // notifications will have been stopped back in onPause(), but there might have
    // been one in progress.
    //
    // TODO: the RenderThread doesn't currently wait for the encoder / muxer to stop,
    //       so we can't use this as an indication that the .mp4 file is complete.

    RenderHandler rh = mRenderThread.getHandler();
    if (rh != null) {
        rh.sendShutdown();
        try {
            mRenderThread.join();
        } catch (InterruptedException ie) {
            // not expected
            throw new RuntimeException("join was interrupted", ie);
        }
    }
    mRenderThread = null;
    mRecordingEnabled = false;

    // If the callback was posted, remove it.  Without this, we could get one more
    // call on doFrame().
    Choreographer.getInstance().removeFrameCallback(this);
    Log.d(TAG, "surfaceDestroyed complete");
}
 
源代码22 项目: VCL-Android   文件: AWindow.java
private SurfaceHelper(int id, Surface surface, SurfaceHolder surfaceHolder) {
    mId = id;
    mSurfaceView = null;
    mTextureView = null;
    mSurfaceHolder = surfaceHolder;
    mSurface = surface;
}
 
源代码23 项目: Tesseract-OCR-Scanner   文件: ScannerActivity.java
@Override
public void surfaceCreated(SurfaceHolder holder) {
    if (!mHasSurface) {
        mHasSurface = true;
        initCamera(holder);
    }
}
 
源代码24 项目: QSVideoPlayer   文件: IjkBaseMedia.java
@Override
public void setDisplay(SurfaceHolder surfaceHolder) {
    try {
        if (mediaPlayer != null)
            mediaPlayer.setDisplay(surfaceHolder);
        if (surfaceHolder != null)
            this.surface = surfaceHolder.getSurface();
    } catch (Exception e) {
        e.printStackTrace();
        iMediaCallback.onError(this, MEDIA_ERROR_UNKNOWN, MEDIA_ERROR_UNKNOWN);
    }
}
 
源代码25 项目: codeexamples-android   文件: CameraFragment.java
public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
    // Now that the size is known, set up the camera parameters and begin
    // the preview.
    Camera.Parameters parameters = mCamera.getParameters();
    parameters.setPreviewSize(mPreviewSize.width, mPreviewSize.height);
    requestLayout();

    mCamera.setParameters(parameters);
    mCamera.startPreview();
}
 
源代码26 项目: no-player   文件: AndroidMediaPlayerFacadeTest.java
@Test
public void givenSurfaceRequesterReturnsSurface_whenPreparing_thenSetsSurface() {
    Surface surface = mock(Surface.class);
    Either<Surface, SurfaceHolder> eitherSurface = Either.left(surface);
    givenSurfaceRequesterReturns(eitherSurface);

    givenMediaPlayerIsPreparedWith(eitherSurface);

    verify(mediaPlayer).setSurface(surface);
}
 
源代码27 项目: buffer_bci   文件: BubbleSurfaceView.java
public void surfaceCreated(SurfaceHolder holder) {
    Canvas canvas = sh.lockCanvas();
    canvas.drawColor(Color.BLACK);
    canvas.drawCircle(100, 200, 50, paint);

    sh.unlockCanvasAndPost(canvas);

    visualizeBufferThread = new VisualizeBufferThread("localhost", 1972);
    visualizeBufferThread.setRunning(true);
    visualizeBufferThread.start();

    drawThread = new DrawThread(sh, ctx, null, visualizeBufferThread);
    drawThread.setRunning(true);
    drawThread.start();
}
 
源代码28 项目: wearabird   文件: GameView.java
private void init(@SuppressWarnings("UnusedParameters") Context context) {
	SurfaceHolder holder = getHolder();
	holder.addCallback(this);
	holder.setFormat(PixelFormat.RGBA_8888);
	setKeepScreenOn(true);
	mainThreadHandler = new Handler(Looper.getMainLooper());
}
 
源代码29 项目: IDCardCamera   文件: CameraPreview.java
private void init(Context context) {
    mContext = context;
    mSurfaceHolder = getHolder();
    mSurfaceHolder.addCallback(this);
    mSurfaceHolder.setKeepScreenOn(true);
    mSurfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
    mSensorControler = SensorControler.getInstance(context.getApplicationContext());
}
 
源代码30 项目: handwriter   文件: MainActivity.java
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
    resultDestroy(result);
    characterDestroy(character);
    recognizerDestroy(recognizer);
    mThread = null;
}
 
 类所在包
 同包方法