@SuppressLint("NewApi") private void setupVirtualDisplay() { mVirtualDisplay = mMediaProjection.createVirtualDisplay( "ScreenCapture", sreenWindowWidth, screenWindowHeight, mScreenDensity, DisplayManager.VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR, mImageReader.getSurface(), null, null); mImageReader.setOnImageAvailableListener( new ImageReader.OnImageAvailableListener() { @Override public void onImageAvailable(ImageReader reader) { Image image = mImageReader.acquireLatestImage(); if (image != null) { processScreenImage(image); image.close(); } } }, null); }
private void startCapture() { projection=mgr.getMediaProjection(resultCode, resultData); it=new ImageTransmogrifier(this); MediaProjection.Callback cb=new MediaProjection.Callback() { @Override public void onStop() { vdisplay.release(); } }; vdisplay=projection.createVirtualDisplay("andshooter", it.getWidth(), it.getHeight(), getResources().getDisplayMetrics().densityDpi, VIRT_DISPLAY_FLAGS, it.getSurface(), null, handler); projection.registerCallback(cb, handler); }
@Override public void start() { mEncoder = new ScreenRecordEncoder(mVideoConfiguration); Surface surface = mEncoder.getSurface(); mEncoder.start(); mEncoder.setOnVideoEncodeListener(mListener); mMediaProjection = mManager.getMediaProjection(resultCode, resultData); int width = VideoMediaCodec.getVideoSize(mVideoConfiguration.width); int height = VideoMediaCodec.getVideoSize(mVideoConfiguration.height); mVirtualDisplay = mMediaProjection.createVirtualDisplay("ScreenRecoder", width, height, 1, DisplayManager.VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR, surface, null, null); }
void start() { recorder=new MediaRecorder(); recorder.setVideoSource(MediaRecorder.VideoSource.SURFACE); recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); recorder.setVideoFrameRate(config.frameRate); recorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264); recorder.setVideoSize(config.width, config.height); recorder.setVideoEncodingBitRate(config.bitRate); recorder.setOutputFile(output.getAbsolutePath()); try { recorder.prepare(); vdisplay=projection.createVirtualDisplay("andcorder", config.width, config.height, config.density, VIRT_DISPLAY_FLAGS, recorder.getSurface(), null, null); beeper.startTone(ToneGenerator.TONE_PROP_ACK); recorder.start(); } catch (IOException e) { throw new RuntimeException("Exception preparing recorder", e); } }
private static VirtualDisplay createVirtualDisplay() { return mediaProjection.createVirtualDisplay("HyperionRecorder", displayMetrics.widthPixels, displayMetrics.heightPixels, displayMetrics.densityDpi, DisplayManager.VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR, mediaRecorder.getSurface(), null /* Callbacks */, null /* Handler */); }
projection.createVirtualDisplay("telescope", width, height, displayMetrics.densityDpi, DisplayManager.VIRTUAL_DISPLAY_FLAG_PRESENTATION, surface, null, null);
private VirtualDisplay createVirtualDisplay() { return mMediaProjection.createVirtualDisplay("ScreenSharingDemo", mDisplayWidth, mDisplayHeight, mScreenDensity, DisplayManager.VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR, mSurface, null /*Callbacks*/, null /*Handler*/); }
private void virtualDisplay() { mVirtualDisplay = mMpj.createVirtualDisplay("record_screen", windowWidth, windowHeight, screenDensity, DisplayManager.VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR, mSurface, null, null); }
private VirtualDisplay createVirtualDisplay() { return mMediaProjection.createVirtualDisplay("ScreenSharingDemo", mDisplayWidth, mDisplayHeight, mScreenDensity, DisplayManager.VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR, mSurface, null /*Callbacks*/, null /*Handler*/); }
private void virtualDisplay() { mVirtualDisplay = mMediaProjection.createVirtualDisplay("screen-mirror", mScreenWidth, mScreenHeight, mScreenDensity, DisplayManager.VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR, mImageReader.getSurface(), null, null); }
private void virtualDisplay() { mVirtualDisplay = mMpj.createVirtualDisplay("capture_screen", windowWidth, windowHeight, screenDensity, DisplayManager.VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR, mImageReader.getSurface(), null, null); }
private VirtualDisplay createVirtualDisplay() { return mMediaProjection.createVirtualDisplay("MainActivity", DISPLAY_WIDTH, DISPLAY_HEIGHT, mScreenDensity, DisplayManager.VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR, mMediaRecorder.getSurface(), null /*Callbacks*/, null /*Handler*/); }
@TargetApi(Build.VERSION_CODES.LOLLIPOP) private void startScreenCapture() { if (mMediaProjection == null) return; DisplayMetrics displayMetrics = getResources().getDisplayMetrics(); mVirtualDisplay = mMediaProjection.createVirtualDisplay( "ScreenCapture", displayMetrics.widthPixels, displayMetrics.heightPixels, displayMetrics.densityDpi, DisplayManager.VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR, mImageReader.getSurface(), null, null); }
@TargetApi(Build.VERSION_CODES.M) @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) private void prepare() throws MediaCodec.CodecException { if (DEBUG) Log.d(TAG, "Preparing encoder"); mVirtualDisplay = mMediaProjection.createVirtualDisplay( TAG, getGrabberWidth(), getGrabberHeight(), mDensity, DisplayManager.VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR, null, mDisplayCallback, null); setImageReader(); }
public VirtualDisplay registerVirtualDisplay(MediaProjection projection, String name) { assert virtualDisplay == null; Surface surface = createDisplaySurface(); if (surface == null) return null; Logger.i("createVirtualDisplay with name:%s, w:%s, h:%s", name, width, height); return projection.createVirtualDisplay(name, width, height, 1, DisplayManager.VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR, surface, null /*Callbacks*/, null /*Handler*/); }
private void createVirtualDisplay() { surfaceTextureHelper.getSurfaceTexture().setDefaultBufferSize(width, height); virtualDisplay = mediaProjection.createVirtualDisplay("WebRTC_ScreenCapture", width, height, VIRTUAL_DISPLAY_DPI, DISPLAY_FLAGS, new Surface(surfaceTextureHelper.getSurfaceTexture()), null /* callback */, null /* callback handler */); }
@Override public void run() { DisplayMetrics displayMetrics = new DisplayMetrics(); wm.getDefaultDisplay().getMetrics(displayMetrics); screenDensity = displayMetrics.densityDpi; mVideoMediaCodec.prepare(); mSurface = mVideoMediaCodec.getSurface(); mVirtualDisplay =mMediaProjection.createVirtualDisplay(TAG + "-display", Constant.VIDEO_WIDTH, Constant.VIDEO_HEIGHT, screenDensity, DisplayManager.VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR, mSurface, null, null); mVideoMediaCodec.isRun(true); mVideoMediaCodec.getBuffer(); }
/****************************************** Factoring Virtual Display creation ****************/ private void createVirtualDisplay() { // get width and height Point size = new Point(); mDisplay.getSize(size); mWidth = size.x; mHeight = size.y; // start capture reader mImageReader = ImageReader.newInstance(mWidth, mHeight, PixelFormat.RGBA_8888, 2); mVirtualDisplay = sMediaProjection.createVirtualDisplay(SCREENCAP_NAME, mWidth, mHeight, mDensity, VIRTUAL_DISPLAY_FLAGS, mImageReader.getSurface(), null, mHandler); mImageReader.setOnImageAvailableListener(new ImageAvailableListener(), mHandler); } }
private void virtualDisplay(Surface mSurface) { Log.v(TAG, "private void virtualDisplay: create virtual displayed"); Log.v(TAG, "virtualDisplay 的各种信息长,宽,屏幕密度:" + mRequestedQuality.getmWidth() + " " + mRequestedQuality.getmHeight() + " " + mRequestedQuality.getmDensity()); if(mMediaProjection == null){ Log.e(TAG, "mMediaProjection == null"); } mMediaProjection.createVirtualDisplay("屏幕捕捉", mRequestedQuality.getmWidth(), mRequestedQuality.getmHeight(), mRequestedQuality.getmDensity(), DisplayManager.VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR, mSurface, null,null); }
private void setUpVirtualDisplay() { Log.i(TAG, "Setting up a VirtualDisplay: " + mSurfaceView.getWidth() + "x" + mSurfaceView.getHeight() + " (" + mScreenDensity + ")"); mVirtualDisplay = mMediaProjection.createVirtualDisplay("ScreenCapture", mSurfaceView.getWidth(), mSurfaceView.getHeight(), mScreenDensity, DisplayManager.VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR, mSurface, null, null); mButtonToggle.setText(R.string.stop); }